نسخة - يُظهر نظام التشغيل Linux استخدامًا عاليًا للذاكرة ولكن لا يتم استخدام أعلى




نظام تشغيل لينكيس linux تحميل (2)

على RedHat Linux 6.2 أنا أشغل free -m ويظهر تقريبا كل 8GB المستخدمة

             total       used       free     shared    buffers     cached
Mem:          7989       7734        254          0         28       7128
-/+ buffers/cache:        578       7411
Swap:         4150          0       4150

ولكن في نفس الوقت في top -M ، لا أستطيع أن أرى أي عمليات تستخدم كل هذه الذاكرة:

top - 16:03:34 up  4:10,  2 users,  load average: 0.08, 0.04, 0.01
Tasks: 169 total,   1 running, 163 sleeping,   5 stopped,   0 zombie
Cpu(s):  0.7%us,  0.3%sy,  0.0%ni, 98.6%id,  0.4%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  7989.539M total, 7721.570M used,  267.969M free,   28.633M buffers
Swap: 4150.992M total,    0.000k used, 4150.992M free, 7115.312M cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 1863 sroot     20   0  398m  24m 9.8m S  0.3  0.3   3:12.87 App1
    1 sroot     20   0  2864 1392 1180 S  0.0  0.0   0:00.91 init
    2 sroot     20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd
    3 sroot     RT   0     0    0    0 S  0.0  0.0   0:00.07 migration/0
    4 sroot     20   0     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/0
    5 sroot     RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0
    6 sroot     RT   0     0    0    0 S  0.0  0.0   0:00.00 watchdog/0
    7 sroot     RT   0     0    0    0 S  0.0  0.0   0:00.08 migration/1
    8 sroot     RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/1

كما أنني حاولت هذا البرنامج النصي م mem ولكن يظهر onlt حوالي 400MB الذاكرة المستخدمة.

https://code.i-harness.com


أيضاً ، كما يظهر السطر الأول total used free shared buffers cached Mem: 7989 7734 254 0 28 7128 -/+ buffers/cache: 578 7411

إذا أضفنا (مخبأة [7128] + مخازن [28] + مجانية [254]) ، فسوف نحصل على ما يقرب من الخط الثاني [7411] بقيمة 7128 + 28 + 254 = 7410


لا تنظر إلى خط "Mem" ، أنظر إلى أسفله.

تستهلك kernel Linux ذاكرة بقدر ما تستطيع لتوفير ذاكرة التخزين المؤقت I / O (وغيرها من المخازن المؤقتة غير الحرجة الأخرى ، لكن ذاكرة التخزين المؤقت ستكون معظم هذا الاستخدام). يتم التخلي عن هذه الذاكرة إلى العمليات عند طلبها. يعرض السطر "- / + buffers / cache" القيم المعدلة بعد حساب ذاكرة التخزين المؤقت I / O ، أي مقدار الذاكرة المستخدمة من قبل العمليات والمقدار المتاح للعمليات (في هذه الحالة ، 578 ميغابايت المستخدمة و 7411MB مجانا).

يوضح اختلاف الذاكرة المستخدمة بين خطي "Mem" و "- / + buffers / cache" مقدار استخدام النواة لأغراض التخزين المؤقت: 7734 ميجابايت - 578 ميجابايت = 7156 ميجابايت في ذاكرة التخزين المؤقت للإدخال / الإخراج. إذا احتاجت العمليات إلى هذه الذاكرة ، سيقلل kernel ببساطة حجم ذاكرة التخزين المؤقت I / O.





free-command