CH-J Server ManagerSSH کے ذریعے سرور کا انتظام
مینو
تمام رہنما اور مضامین ←

Linux سرور پر RAM، کیش اور swap کے اعداد کیسے پڑھیں

free کے کالموں کا مطلب، زیادہ میموری استعمال ہونا اکثر معمول کے مطابق کیوں ہے، اور کون سی نشانیاں واقعی میموری کی کمی بتاتی ہیں۔

free کے بجائے available پڑھیں

Linux غیر استعمال شدہ میموری کو ڈسک کیش کے طور پر استعمال کرتا ہے، اس لیے درست کام کرنے والے سرور پر free میموری کم ہونا معمول کی بات ہے۔ available کالم کرنل کا اندازہ ہے کہ نیا کام swap میں صفحات منتقل کیے بغیر کتنی میموری حاصل کر سکتا ہے۔ اسی عدد پر نظر رکھیں۔ used کا درست حساب اوزار کے ورژن پر منحصر ہے، اس لیے مختلف سسٹمز کے درمیان اس کا موازنہ نہ کریں۔

free -h
grep -E 'MemAvailable|Shmem:|SReclaimable' /proc/meminfo

کیش کا کون سا حصہ آزاد ہو سکتا ہے اور کون سا نہیں

ایپلی کیشنز کو میموری درکار ہو تو پیج کیش عموماً آزاد کیا جا سکتا ہے۔ مشترکہ میموری اور tmpfs (Shmem) بھی کیش میں دکھائی دیتے ہیں، لیکن انہیں یونہی خارج نہیں کیا جا سکتا کیونکہ ان میں ایسا ڈیٹا ہوتا ہے جس کی کوئی نقل ڈسک پر نہیں ہوتی۔ اسی لیے بڑے کیش کے ساتھ available میموری کم ہونا اکثر بڑے tmpfs یا مشترکہ میموری کے بڑے حصے کی علامت ہے۔

df -h -t tmpfs
sudo slabtop -o | head -15

swap کا استعمال خود بخود مسئلے کی علامت نہیں

سرور کم استعمال ہونے والے صفحات کو کئی ہفتوں تک swap میں بغیر نقصان رکھ سکتا ہے۔ نقصان مسلسل منتقلی سے ہوتا ہے۔ vmstat میں si اور so کالم دیکھیں: مسلسل صفر سے زیادہ رہنے والی قدروں کا مطلب ہے کہ سسٹم فعال طور پر صفحات swap میں اور اس سے باہر منتقل کر رہا ہے، جو حقیقی کمی کی نشانی ہے۔

swapon --show
vmstat 1 5

معلوم کریں میموری کون استعمال کر رہا ہے

پروسیسز کو مقیم میموری کے لحاظ سے ترتیب دیں۔ RSS پروسیسز کے درمیان مشترک صفحات کو ہر پروسیس میں شمار کرتا ہے، اس لیے کئی پروسیسز کی قدروں کو بس جمع نہیں کیا جا سکتا۔ PSS والے اوزار، مثلاً smem، نصب ہوں تو زیادہ منصفانہ مجموعہ دیتے ہیں۔

ps -eo pid,user,rss,comm --sort=-rss | head -15

حقیقی کمی کی پہچان کریں

نشانیاں کم available میموری، swap میں اور اس سے باہر مسلسل منتقلی، اور out-of-memory killer کے ہاتھوں ختم ہونے والے پروسیسز ہیں۔ کرنل لاگ دیکھیں۔ اعداد بہتر دکھانے کے لیے drop_caches نہ چلائیں: یہ صرف سرور کو ڈسک سے دوبارہ پڑھنے پر مجبور کرتا ہے اور کچھ حل نہیں کرتا۔

sudo journalctl -k --no-pager | grep -iE 'out of memory|oom-kill'

CH-J Server Manager میں میموری

System Monitor یہ قدریں SSH کے ذریعے پڑھتا ہے۔ Linux پر یہ used کو MemTotal − MemFree − Buffers − Cached − SReclaimable اور available کو کرنل کے اندازے کے طور پر متعین کرتا ہے۔ مشترکہ میموری Cached کا حصہ ہے اور آزاد نہیں کی جا سکتی، اور بار کی اقسام ایک دوسرے کو دہرا کر شمار نہیں کرتیں۔ چونکہ فارمولا free کے بعض ورژنز سے مختلف ہے، اس لیے اعداد عین مطابق نہیں بھی ہو سکتے۔ یہ swap کو اس کے استعمال کی تاریخ کے ساتھ بھی دکھاتا ہے۔ ZFS ARC کو الگ نہیں گنا جاتا، اس لیے ZFS ہوسٹس پر اسے استعمال شدہ میموری میں شمار کیا جاتا ہے۔

تفصیلی دستاویزات

man: free ←

man: proc_meminfo ←

بایومیٹرک اَن لاک اور سیکیورٹی ←