محتويات الدورة

Elasticsearch / المتقدم: استرجاع صامد وقابل للتعافي / الدرس 14

السعة والضغط العكسي وكلفة الاستعلام

شخّص ضغط الطلبات بقياسات محددة النطاق، واضبط العمل المعروض قبل رفع حدود الحماية.

وقت القراءة التقريبي: 5 دقيقةتاريخ مراجعة المحتوى
في هذه الصفحة

أهداف الدرس

  • اربط شكل الاستعلام والتزامن وضغط الذاكرة.
  • فسر إشارات الرفض والقواطع من دون وصفات ضبط عامة.

قد يغير هيكل طلب واحد الحمل كله

يختلف بحث عنوان يعيد عشرة حقول عن تجميع واسع على كل أحداث الزيارة. وقد تزيد الإزاحات العميقة وكثرة inner_hits وحاويات المفاتيح الكثيرة والسكربتات المكلفة العمل، بصورة مستقلة عن عدد المستندات الخام. وتضاعف الطلبات المتزامنة الطلب على الموارد، وقد تتنافس مع الإدخال ودمج المقاطع والتعافي. ابدأ بجرد الحمل: فئات الطلبات وميزانيات حجم الاستجابة ومعدل الوصول والتزامن وأهداف الزمن. افصل حساب الخادم عن وقت جلب العميل والشبكة. لا يثبت طلب واحد سريع على ذاكرة مخبأة هادئة وجود سعة مستدامة عندما يعمل الإدخال والبحث معاً.

حد عقد الاستجابة عمداً

يعيد جسم الاستعلام صفحة صغيرة من المقتنيات، ويصفي حالة دقيقة، ويحد حقول المصدر. يتخلى track_total_hits:false عمداً عن عد النتائج الإجمالي، ويجب أن تقبل الواجهة هذا العقد. ليس هذا تحسيناً عاماً إذا وعد المنتج بعدد دقيق. كما أن مهلة البحث ليست ضمان إلغاء صارماً من البداية إلى النهاية، ولا إذناً بتجاهل الاستجابات الجزئية. يجب أن يفحص التطبيق timed_out وإخفاقات الأجزاء ويقرر هل تصلح النتيجة الناقصة للاستخدام. يوضح الجسم طلب منتج أضيق، ولا يدعي إثبات تسارع مقاس.

json مثال تقني توضيحي؛ النتائج المنطقية مستنتجة ولم تُختبر على المحرك.
{"size":10,"track_total_hits":false,"query":{"bool":{"filter":[{"term":{"status":"displayed"}}]}},"_source":["artifact_id","title"],"sort":[{"artifact_id":"asc"}]}

هذا مثال لاستجابة مقتنيات محدودة. وهو يتعمد عدم تقديم عدد إجمالي دقيق، ويفترض artifact_id من نوع keyword يصلح للفرز.

الرفض تغذية راجعة لا دليل مفقود

تشير حالات رفض التنفيذ وقواطع الذاكرة إلى تجاوز العمل المعروض ميزانية قبول أو ذاكرة ذات صلة. تتتبع القواطع احتياجات ذاكرة مختارة، ولا تحسب كل تخصيص؛ لذلك لا تضمن منع نفاد الذاكرة. وقد يزيل رفع حد القاطع حماية من دون إضافة سعة. احفظ الخطأ التفصيلي وفئة الطلب والقياسات المعتمدة في الوقت نفسه. قلل اتساع الحاويات أو نقل المستندات أو التزامن غير اللازم قبل اقتراح تغييرات بنية تحتية. وأعد العمليات المؤهلة فقط بتأخير محدود وهوية تمنع التكرار، لأن موجة إعادة فورية قد تحول ضغطاً عابراً إلى انقطاع طويل.

نموذج التزامن حساب تخطيط فقط

يضرب نموذج الميزانية المحلي حمولة مفترضة قدرها ثمانية ميبيبايت في أربعة طلبات قيد التنفيذ، فينتج اثنين وثلاثين ميبيبايت من الحمولات المعروضة في الوقت نفسه. قد تكون الذاكرة الفعلية أكبر بسبب التحليل وبنى الاستعلامات والاستجابات والمخازن المؤقتة. لا يحدد الحساب حجم JVM ولا يتنبأ بقاطع Elasticsearch؛ إنما يوضح تضاعف العمل المعروض. غيّر افتراضاً واحداً في كل مرة، وقارنه بأدلة حمل ممثلة في مختبر مصرح به. وحافظ على اتساق وحدات البايت، وميّز البايتات المضغوطة على الشبكة وJSON غير المضغوط والبنى المقيمة في الكومة؛ فهي كميات مختلفة للطلب نفسه.

json مثال تقني توضيحي؛ النتائج المنطقية مستنتجة ولم تُختبر على المحرك.
{"assumed_payload_mib":8,"concurrent_requests":4,"payload_exposure_mib":32,"scope":"local planning model, not Elasticsearch configuration"}

تم التحقق محلياً من الضرب 8 × 4 = 32. لا يشمل الحساب ذاكرة التحليل والاستجابة والمحرك الإضافية.

اضبط من قيود ممثلة

افحص معاً الأدلة المعتمدة عن المعالج وضغط الكومة وجمع الذاكرة وذاكرة نظام الملفات والقرص والانتظار والرفض. يحتاج سكربت مقيد بالمعالج إلى علاج يختلف عن تعافٍ مقيد بالقرص. وليست الكومة كل الذاكرة المتاحة؛ فقد تعتمد أحمال Lucene والمتجهات بشدة على ذاكرة نظام الملفات. تضيف الأجزاء الصغيرة الكثيرة تكلفة، بينما قد تعقد الأجزاء الضخمة التعافي؛ اختر بناءً على الحمل المقاس وأهداف الصمود، لا شعار ثابت. لا تنقل إعدادات JVM والعقد في النشر الذاتي مباشرة إلى Serverless. ولا تنفذ الدورة مولد حمل أو قياساً أو تغيير إعداد أو تجربة موارد، ولا تقدم نسبة كومة أو حجم جزء صالحاً للجميع.

الأخطاء الشائعة وإصلاحها

circuit_breaking_exception

لماذا يحدث؟
يتجاوز طلب ذاكرة متتبع عتبة حماية.
كيف تصلحه؟
افحص الطلب وأدلة الضغط قبل التفكير في تغيير سعة خاضع للمراجعة.
كيف تتجنب تكراره؟
حدّ أشكال الطلبات المكلفة والتزامن المعروض.

es_rejected_execution_exception

لماذا يحدث؟
لا يمكن قبول عمل التنفيذ المعروض ضمن الميزانية الحالية.
كيف تصلحه؟
طبّق الضغط العكسي وإعادة محدودة للعمل المؤهل الذي لا يكرر الأثر.
كيف تتجنب تكراره؟
راقب معدل الوصول والانتظار والرفض باعتبارها حملاً واحداً.

يُعامل تقليل حقول المصدر المعادة كأنه تفويض

لماذا يحدث؟
اختلط تشكيل الاستجابة بالتحكم في الوصول.
كيف تصلحه؟
افرض الوصول عبر ضوابط أمنية وحدود تطبيق معتمدة.
كيف تتجنب تكراره؟
راجع كشف الحقول مستقلاً عن ضبط الأداء.

اختبر فهمك

1. هل يعني التعرض النموذجي لحمولات بحجم 32 MiB أن العقدة تحتاج بالضبط 32 MiB من الكومة؟

اعرض الحل المشروح

لا. يستبعد النموذج التحليل وبنى المحرك والاستجابات والمخازن المؤقتة والأحمال الأخرى، ويوضح مضاعفة التزامن فقط. استخدم قياسات ممثلة ومعتمدة لتحديد احتياجات الذاكرة والزمن. وأبقِ حدود الحماية أثناء تقييم عقد طلب أضيق.

2. لماذا قد تقلل زيادة إعادة المحاولة الإنتاجية المفيدة؟

اعرض الحل المشروح

تضيف المحاولات عملاً مع استمرار الاختناق الأصلي. وقد تشغل العمليات المكررة الطوابير والذاكرة وتؤخر عملاً جديداً مفيداً. حدّ التزامن وميزانية الإعادة، وطابق النتائج المجهولة، وأصلح أخطاء المصدر الدائمة بدلاً من تكرارها.

أهم ما تعلمته

  • الرفض الوقائي دليل يدعو إلى تقليل العمل المعروض أو تغيير شكله.
  • تحتاج ادعاءات السعة إلى قياسات ممثلة وحد ملاحظة معلن.

المراجع الرسمية