CH-J Server Managerإدارة الخوادم عبر SSH
القائمة
جميع الأدلة والمقالات ←

كيف تقرأ RAM والذاكرة المخبئية وswap على خادم Linux

معاني أعمدة free، ولماذا يكون ارتفاع استخدام الذاكرة طبيعياً في كثير من الأحيان، وأي العلامات تدل فعلاً على نقص الذاكرة.

اقرأ available بدلاً من free

يستخدم 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 لأسابيع دون ضرر. ما يضر هو النقل المستمر. راقب العمودين si وso في vmstat: بقاء القيم أعلى من الصفر يعني أن النظام ينقل الصفحات فعلياً من 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 ←

الفتح بالقياسات الحيوية والأمان ←