Elasticsearch زیادہ سے زیادہ میموری کا سائز سیٹ کریں۔

Elasticsearch Zyad S Zyad Mymwry Ka Sayz Sy Kry



Elasticsearch کے ساتھ کام کرتے وقت یاداشت ایک ضروری لیکن محدود وسیلہ ہے۔ اس کی وجہ یہ ہے کہ لوسین ہر دستیاب میموری کا استعمال کرے گا۔ تاہم، غلط کنفیگر ہونے پر، میموری کی ترتیبات کم کارکردگی اور غیر موثر میموری استعمال کا باعث بن سکتی ہیں۔

اس ٹیوٹوریل میں، ہم آپ کو Elasticsearch کے ساتھ کام کرتے وقت زیادہ سے زیادہ اور کم از کم JVM ہیپ سائز کنفیگریشن دکھائیں گے۔







آو شروع کریں.



ہیپ میموری کیا ہے؟

Elasticsearch کے تناظر میں، Heap میموری سے مراد ایک Elasticsearch نوڈ کے اندر جاوا ورچوئل مشین کے لیے مختص کردہ میموری کی کل مقدار ہے۔



Elasticsearch بنیادی نظام کی کل میموری اور نوڈ کے کردار کی بنیاد پر JVM ہیپ سائز کو ڈیفالٹ سیٹ کرے گا۔ اس کا مطلب ہے کہ ہیپ میموری سائز ایلوکیشن اس لحاظ سے مختلف ہو سکتا ہے کہ آیا یہ ماسٹر نوڈ، ڈیٹا، انجسٹ، ڈیٹا_کولڈ وغیرہ ہے۔





زیادہ تر پیداواری ماحول کے لیے، Elasticsearch کو ہیپ سائز کا انتظام کرنے کی اجازت دینے کی سفارش کی جاتی ہے اور کافی سے زیادہ۔

نوٹ : اگر آپ Docker میں Elasticsearch چلا رہے ہیں، تو کل ہیپ میموری ڈوکر کنٹینر کے کل سائز پر مبنی ہے نہ کہ Docker کے میزبان پر۔



کم از کم اور زیادہ سے زیادہ ہیپ سائز کو ترتیب دینا

کم سے کم اور زیادہ سے زیادہ ہیپ سائز کو ترتیب دینے کے لیے، ہم Xms اور Xmx پیرامیٹرز استعمال کر سکتے ہیں۔ Elasticsearch probits زیادہ سے زیادہ میموری کو کل میموری کے 50% سے زیادہ پر سیٹ کر رہے ہیں۔ اس کی وجہ یہ ہے کہ JVM ہیپ کے علاوہ، Elasticsearch کو دوسرے آپریشنز جیسے فائل سسٹم کیش، نیٹ ورک کمیونیکیشن وغیرہ کے لیے زیادہ میموری کی ضرورت ہوتی ہے۔ اسی طرح، JVM باقی 50% میموری کا ایک حصہ استعمال کرے گا۔

دوسرا، xms اور xmx قدروں کو اوپس کی حد سے زیادہ متعین نہ کریں۔ محفوظ کنفیگریشن کے لیے، کچھ سسٹمز پر اسے 26GB یا 30GB تک محدود کریں۔

آپ Elasticsearch لاگ میں حد کو چیک کر سکتے ہیں۔

cat elasticsearch.log | grep 'آبجیکٹ پوائنٹرز'

آپ کو ایک اندراج دیکھنا چاہئے جیسا کہ دکھایا گیا ہے:

[2022-08-19T20:01:50,275][INFO ][o.e.NodeEnvironment    ] [debian11] ہیپ سائز [1.9gb]، کمپریسڈ عام آبجیکٹ پوائنٹرز [سچ]
[2022-08-19T20:08:07,207][INFO ][o.e.NodeEnvironment    ] [debian11] ہیپ سائز [1.9gb]، کمپریسڈ عام آبجیکٹ پوائنٹرز [سچ]
[2022-08-19T20:36:47,244][INFO ][o.e.NodeEnvironment    ] [debian11] ہیپ سائز [1.9gb]، کمپریسڈ عام آبجیکٹ پوائنٹرز [سچ]

آپ xms اور xmx اقدار کے لیے نوڈس انفارمیشن API سے بھی استفسار کر سکتے ہیں:

curl -X GET localhost:9200/_nodes/_all/jvm?pretty

آپ کو ایک آؤٹ پٹ دیکھنا چاہئے جیسا کہ دکھایا گیا ہے:

کم از کم اور زیادہ سے زیادہ ہیپ سائز سیٹ کریں۔

JVM ہیپ سائز کی قدروں میں ترمیم کرنے کے لیے، آپ کو /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 سروس کو دوبارہ شروع کریں۔

نتیجہ

اس ٹیوٹوریل میں، آپ نے Elasticsearch کے تناظر میں JVM Heap کو سیکھا، کہ کس طرح Elasticsearch JVM ہیپ کو کنفیگر کرتا ہے، اور آپ ہیپ کے سائز کو کیسے تبدیل کر سکتے ہیں۔

پڑھنے کا شکریہ!!