سؤال كيف يمكنني مراقبة استخدام الذاكرة؟


لقد استعملت top لمشاهدة استخدام الذاكرة في الوقت الحالي. لكنني أرغب في مراقبة استخدام الذاكرة خلال فترة زمنية. مثل بدء المراقبة ثم تنفيذ بعض الأوامر ، والتوقف النهائي للرصد ومعرفة مقدار الذاكرة التي تم استخدامها خلال الفترة.

كيف يمكنني القيام بذلك على خادم أوبونتو؟

أعتقد أنني يمكن أن تبدأ cronjob كل ثانية 5 أو نحو ذلك ، واستدعاء أمر تسجيل استخدام الذاكرة الحالية في ملف نصي. ولكن ما الأمر الذي يجب أن استخدمه للحصول على استخدام الذاكرة الحالي بتنسيق يسهل تسجيله إلى ملف نصي؟


235
2017-10-26 16:50


الأصل




الأجوبة:


أوصي بدمج الإجابات السابقة

watch -n 5 free -m

لاحظ أن Linux يحب استخدام أي ذاكرة إضافية مخبأ محركات الأقراص الصلبة. لذلك لا تريد أن تنظر فقط إلى الحرة Mem. أنت تريد أن تنظر إلى free عمود من -/+ buffers/cache: صف. يوضح هذا مقدار الذاكرة المتوفرة للتطبيقات. لذا ركضت للتو free -m وحصلت على هذا:

             total       used       free     shared    buffers     cached
Mem:          3699       2896        802          0        247       1120
-/+ buffers/cache:       1528       2170
Swap:         1905         62       1843

أنا أعلم أنني أستخدم 1528 ميجابايت و لدي 2170 ميغابايت حر.

ملحوظة: لوقف هذا watch دورة يمكنك فقط اضغط السيطرة+C.


290
2017-10-26 17:40



شكرا ، هذا غني بالمعلومات. ولكن على العمود المستخدم لديك أولا 2896 وثم 1528 للمخازن المؤقتة ، لا يعني هذا أنك تستخدم 2896 + 1528؟ - Jonas
Mem: used هو إجمالي الذاكرة المستخدمة. -/+ buffers/cache: used هو إجمالي الذاكرة المستخدمة ناقص مخازن وذاكرة التخزين المؤقت. أعرف أن الناتج يبدو مضحكا ، ولكن لا يوجد هنا حساب هنا. أنت فقط تبحث عن استخدام / مجاني في - / + المخازن المؤقتة / صف ذاكرة التخزين المؤقت. - Justin Force
الخيار -h هو أجمل كثيرا - frmdstryr
frmdstryr نقطة جيدة! -h / - الإنسان لم يكن موجودا عندما كتبت هذا ، على الرغم من. gitlab.com/procps-ng/procps/commit/... - Justin Force
@ cbradsh1 يمكنك فقط القيام به free -hعلى سبيل المثال watch -n 5 free -h للحصول على إخراج "قابل للقراءة من قبل الإنسان" ، على سبيل المثال ، 2.1G بدلا من 2170 في الإخراج. - Justin Force


أعتقد htop هو الحل الأفضل.

  • sudo apt-get install htop

بهذه الطريقة ستلاحظ ما هي البرامج التي تستخدم معظم ذاكرة الوصول العشوائي. ويمكنك بسهولة إنهاء واحدة إذا كنت ترغب في ذلك. ها هي لقطة شاشة!


192
2018-05-18 00:11



htop هو لطيف لأنه أكثر "رسومية" وربما أسهل للقراءة من free. - mjswensen
أنا لا أفهم الإخراج. هو RES الذاكرة المستخدمة من قبل هذا التطبيق في ميغابايت؟ ثم ما هو SHR؟ - faizal
faizal: الذاكرة الظاهرية والمحجوزة والمشتركة. - WitchCraft
كيف htop تظهر لك "استخدام الذاكرة على مدى فترة من الوقت"؟ - dangel
htop -s M_SHARE htop -s TIME - Tomachi


إذا كنت تبحث عن تحليل جيد للذاكرة المستخدمة من قبل كل عملية قيد التشغيل ، فقد أوصيك بالخروج ps_mem.py (وجدت هنا في pixelbeat.org).

أعرف في التعليقات أعلاه ، لقد ذكرت أنك تريد لقطة من سطر واحد من حر، لكنني برزت الآخرين قد تجد هذا مفيد.

مثال على الناتج:

user@system:~$ sudo ps_mem.py
[sudo] password for user:
 Private  +   Shared  =  RAM used       Program

  4.0 KiB +   7.5 KiB =  11.5 KiB       logger
  4.0 KiB +   8.0 KiB =  12.0 KiB       mysqld_safe
  4.0 KiB +  10.0 KiB =  14.0 KiB       getty
  4.0 KiB +  42.0 KiB =  46.0 KiB       saslauthd (5)
 48.0 KiB +  13.0 KiB =  61.0 KiB       init
 56.0 KiB +  27.5 KiB =  83.5 KiB       memcached
 84.0 KiB +  26.5 KiB = 110.5 KiB       cron
120.0 KiB +  50.0 KiB = 170.0 KiB       master
204.0 KiB + 107.5 KiB = 311.5 KiB       qmgr
396.0 KiB +  94.0 KiB = 490.0 KiB       tlsmgr
460.0 KiB +  65.0 KiB = 525.0 KiB       rsyslogd
384.0 KiB + 171.0 KiB = 555.0 KiB       sudo
476.0 KiB +  83.0 KiB = 559.0 KiB       monit
568.0 KiB +  60.0 KiB = 628.0 KiB       freshclam
552.0 KiB + 259.5 KiB = 811.5 KiB       pickup
  1.1 MiB +  80.0 KiB =   1.2 MiB       bash
  1.4 MiB + 308.5 KiB =   1.7 MiB       fail2ban-server
888.0 KiB +   1.0 MiB =   1.9 MiB       sshd (3)
  1.9 MiB +  32.5 KiB =   1.9 MiB       munin-node
 13.1 MiB +  86.0 KiB =  13.2 MiB       mysqld
147.4 MiB +  36.5 MiB = 183.9 MiB       apache2 (7)
---------------------------------
                        208.1 MiB
=================================

 Private  +   Shared  =  RAM used       Program

الجزء الوحيد الذي لا يعجبني هو حقيقة أن النص البرمجي يدعي أنه يتطلب امتيازات الجذر. لم تتح لي الفرصة حتى الآن لأرى بالضبط لماذا هذا هو الحال.


38
2017-10-26 17:19



أتساءل عما إذا كانت الذاكرة المشتركة بين المواضيع. تتم مشاركتها بين العمليات ، أليس كذلك؟ على الأقل على ويندوز ... - Thomas Weller
في هذه الحالة ، تشير الذاكرة المشتركة إلى الصفحات التي تم تعيينها بواسطة عمليات متعددة في شكل مكتبات مشتركة. بالإضافة إلى ذلك ، في سياق تطبيقات متعددة الخيوط ، يمكن الوصول إلى مساحة ذاكرة العملية بأكملها من خلال كافة مؤشرات الترابط في هذه العملية. - Jason Mock
متوفر الآن في PyPI (pip install ps_mem) و على جيثب. - Leif Arne Storset
ThomasWeller: نعم ، دائمًا ما تتشارك مؤشرات الترابط في الذاكرة ، بينما قد تشارك العمليات بعضها أو بعضها ضمن شروط معينة. - Leif Arne Storset
لهذا أستخدم جهاز gnome-system-monitor - jms


استخدم ال حر أمر. على سبيل المثال ، هذا هو ouput لـ free -m:

             total       used       free     shared    buffers     cached
Mem:          2012       1666        345          0        101        616
-/+ buffers/cache:        947       1064
Swap:         7624          0       7624

free -m | grep /+ سيعود فقط السطر الثاني:

-/+ buffers/cache:        947       1064

22
2017-10-26 17:27



شكرا ، تبدو رائعة. إذا هذا 947 هو استخدام الذاكرة مطروحًا منها الذاكرة المستخدمة في المخازن المؤقتة وذاكرة التخزين المؤقت؟ - Jonas


ال راقب الأمر قد يكون مفيدا. محاولة watch -n 5 free لمراقبة استخدام الذاكرة مع التحديثات كل خمس ثوانٍ.


9
2018-01-19 20:09



شكرا ، لقد كان هذا رائعا! ومع ذلك ، أفضل استخدام الذاكرة على سطر واحد ، لذلك يسهل تسجيل الدخول إلى ملف نصي. - Jonas


للرصد البصري لاستخدام RAM بشكل عام ، إذا كنت تستخدم Byobu، سوف يحافظ على استخدام الذاكرة في الركن الأيمن السفلي من الجهاز وسيعمل أثناء وجودك في أي محطة طرفية.

كما يمكنك رؤيته من لقطة الشاشة ، يحتوي الجهاز الظاهري على وقت تشغيل 1h3m ، و 0.00 load ، ومعالج 2.8GHz (افتراضي) و 994 ميجابايت (21٪) من ذاكرة الوصول العشوائي المتوفرة على النظام.

Byobu in use


4
2018-04-16 19:15





يمكنك فعل ذلك باستخدام cat /proc/meminfo.

enter image description here


3
2017-09-27 13:30



إضافة ساعة إلى مقدمة هذا الأمر يجعلها رائعة! كما في watch cat /proc/meminfo - Elder Geek
ال free يأخذ الأمر معلوماته من /proc/meminfo ويعرض لهم بطريقة مضغوطة. استعمال free -h من أجل الإخراج القابل للقراءة. - LoMaPh


حل خط واحد والإخراج:

free -m | grep "Mem:"

في ما يلي مثال على الناتج المتوقع:

enter image description here


3
2017-10-26 18:01



سيسمح لك ذلك أيضًا بمشاهدة استخدام الذاكرة في الوقت الحالي ... - mook765


سأستخدم الصبار. سيقوم هذا الرسم البياني باستخدام الذاكرة الخاصة بك إلخ خلال فترة زمنية ، وستتمكن من التحقق من الاستخدام باستخدام مستعرض الويب الخاص بك.


1
2017-10-22 15:32