مجموعة Elasticsearch الحد الأقصى لحجم الذاكرة

Mjmw T Elasticsearch Alhd Alaqsy Lhjm Aldhakrt



'تعتبر الذاكرة موردًا أساسيًا ولكنها محدودة عند العمل مع Elasticsearch. هذا لأن Lucene سيستفيد من كل ذاكرة متاحة. ومع ذلك ، عند التهيئة بشكل خاطئ ، يمكن أن تؤدي إعدادات الذاكرة إلى أداء منخفض واستخدام غير فعال للذاكرة. '

في هذا البرنامج التعليمي ، سوف نعرض لك الحد الأقصى والحد الأدنى لتكوين حجم JVM Heap Size عند العمل مع Elasticsearch.







هيا بنا نبدأ.



ما هي ذاكرة الكومة؟

في سياق Elasticsearch ، تشير ذاكرة Heap إلى المقدار الإجمالي للذاكرة المخصصة لجهاز Java Virtual Machine داخل عقدة Elasticsearch.



سيقوم Elasticsearch بتعيين حجم JVM Heap افتراضيًا بناءً على الذاكرة الإجمالية للنظام الأساسي ودور العقدة. هذا يعني أن تخصيص حجم ذاكرة الكومة قد يختلف اعتمادًا على ما إذا كانت عقدة رئيسية ، أو بيانات ، أو استيعاب ، أو data_cold ، إلخ.





بالنسبة لمعظم بيئات الإنتاج ، يوصى بالسماح لـ Elasticsearch بإدارة حجم الكومة وهو أكثر من كافٍ.

ملاحظة : إذا كنت تقوم بتشغيل Elasticsearch في Docker ، فإن إجمالي ذاكرة الكومة يعتمد على الحجم الإجمالي لحاوية عامل الإرساء وليس مضيف Docker.



تكوين الحد الأدنى والأقصى لحجم الكومة

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

ثانيًا ، لا تقم بتعيين قيم xms و xmx على أكثر من حد الخطأ oops. للتهيئة الآمنة ، حددها بـ 26 جيجابايت أو 30 جيجابايت في بعض الأنظمة.

يمكنك التحقق من العتبة في سجل Elasticsearch.

القط elasticsearch.log | grep 'مؤشرات الكائن'

يجب أن ترى إدخالًا كما هو موضح:

[2022-08-19T20: 01: 50،275] [INFO] [o.e.NodeEnvironment] [debian11] حجم الكومة [1.9 جيجا بايت] ، مؤشرات كائن عادية مضغوطة [صحيح]
[2022-08-19T20: 08: 07،207] [INFO] [o.e.NodeEnvironment] [debian11] حجم الكومة [1.9 جيجا بايت] ، مؤشرات كائن عادية مضغوطة [صحيح]
[2022-08-19T20: 36: 47،244] [INFO] [o.e.NodeEnvironment] [debian11] حجم الكومة [1.9 جيجا بايت] ، مؤشرات كائن عادية مضغوطة [true]

يمكنك أيضًا الاستعلام عن واجهة برمجة تطبيقات معلومات العقد لقيم xms و xmx:

curl -X احصل على المضيف المحلي: 9200 / _nodes / _all / jvm؟ pretty

يجب أن ترى ناتجًا كما هو موضح:

قم بتعيين الحد الأدنى والحد الأقصى لحجم الكومة

لتعديل قيم JVM Heap Size ، تحتاج إلى إضافة ملف تكوين في الدليل /etc/elasticsearch/jvm.options.d. يجب أن ينتهي هذا الملف بالملحق .options.

فمثلا:

sudo touch /etc/elasticsearch/jvm.options.d/heap.options $

قم بتحرير الملف

sudo nano $ /etc/elasticsearch/jvm.options.d/heap.options

أضف الحد الأدنى والأقصى المطلوب لحجم ذاكرة الكومة.

على سبيل المثال ، يقوم الإدخال أدناه بتكوين الحد الأدنى والحد الأقصى لحجم الكومة إلى 4 جيجابايت.

احفظ الملف وأعد تشغيل خدمة Elasticsearch.

استنتاج

في هذا البرنامج التعليمي ، تعلمت JVM Heap في سياق Elasticsearch ، وكيف يقوم Elasticsearch بتكوين JVM Heap ، وكيف يمكنك تعديل حجم الكومة.

شكرا للقراءة!!