Elasticsearch הגדר את גודל הזיכרון המרבי

Elasticsearch Hgdr T Gwdl Hzykrwn Hmrby



'זיכרון הוא משאב חיוני אך מוגבל בעבודה עם Elasticsearch. הסיבה לכך היא שלוצ'ן תעשה שימוש בכל זיכרון זמין. עם זאת, כאשר הם מוגדרים בצורה שגויה, הגדרות הזיכרון עלולות להוביל לביצועים נמוכים ולשימוש לא יעיל בזיכרון.'

במדריך זה, נראה לך את התצורה המקסימלית והמינימלית של JVM Heap Size בעת עבודה עם Elasticsearch.







בואו נתחיל.



מהו זיכרון ערימה?

בהקשר של Elasticsearch, Heap memory מתייחס לכמות הזיכרון הכוללת שהוקצה ל-Java Virtual Machine בתוך צומת Elasticsearch.



Elasticsearch יגדיר כברירת מחדל את גודל ה-JVM Heap בהתבסס על הזיכרון הכולל של מערכת הבסיס ותפקיד הצומת. המשמעות היא שהקצאת גודל הזיכרון הערימה עשויה להשתנות בהתאם אם מדובר בצומת מאסטר, נתונים, אינסט, data_cold וכו'.





עבור רוב סביבות הייצור, מומלץ לאפשר ל- Elasticsearch לנהל את גודל הערימה ומספיק יותר.

הערה : אם אתה מפעיל את Elasticsearch ב-Docker, זיכרון הערימה הכולל מבוסס על הגודל הכולל של מיכל הדוקר ולא על המארח של הדוקר.



הגדרת גודל ערימה מינימלית ומקסימלית

כדי להגדיר את גודל הערימה המינימלי והמקסימלי, אנו יכולים להשתמש בפרמטרים Xms ו-Xmx. פרוביטים של Elasticsearch מגדירים את הזיכרון המרבי ללא יותר מ-50% מסך הזיכרון. הסיבה לכך היא שמלבד JVM Heap, Elasticsearch דורש יותר זיכרון עבור פעולות אחרות כמו מטמון של מערכת קבצים, תקשורת רשת וכו'. באופן דומה, ה-JVM ישתמש בחלק מ-50% הזיכרון הנותרים.

שנית, אל תגדיר את ערכי ה-xms וה-xmx ליותר מסף האופס. לקבלת תצורה בטוחה, הגבל אותה ל-26GB או 30GB במערכות מסוימות.

אתה יכול לבדוק את הסף ביומן Elasticsearch.

cat elasticsearch.log | grep 'מצביעי אובייקט'

אתה אמור לראות ערך כמוצג:

[2022-08-19T20:01:50,275][INFO ][o.e.e.NodeEnvironment    ] [debian11] גודל ערימה [1.9gb], מצביעי אובייקט רגילים דחוסים [true]
[2022-08-19T20:08:07,207][INFO ][o.e.e.NodeEnvironment    ] [debian11] גודל ערימה [1.9gb], מצביעי אובייקט רגילים דחוסים [true]
[2022-08-19T20:36:47,244][INFO ][o.e.e.NodeEnvironment    ] [debian11] גודל ערימה [1.9gb], מצביעי אובייקט רגילים דחוסים [true]

אתה יכול גם לשאול את ה-API של מידע הצמתים עבור ערכי xms ו-xmx:

curl -X GET localhost: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

הוסף את גודל הזיכרון המינימלי והמקסימלי הרצוי.

לדוגמה, הערך למטה מגדיר את גודל הערימה המינימלי והמקסימלי ל-4GB.

שמור את הקובץ והפעל מחדש את שירות Elasticsearch.

סיכום

במדריך זה למדת את ה-JVM Heap בהקשר של Elasticsearch, כיצד Elasticsearch מגדיר את ה-JVM Heap וכיצד ניתן לשנות את גודל הערימה.

תודה שקראת!!