सवाल मैं स्मृति उपयोग की निगरानी कैसे कर सकता हूं?


मैंने उपयोग कर लिया है top इस समय स्मृति उपयोग देखने के लिए। लेकिन मैं समय की अवधि में स्मृति उपयोग की निगरानी करना चाहता हूं। उदा। निगरानी शुरू करें और फिर कुछ कमांड निष्पादित करें, और अंतिम निगरानी को रोकें और देखें कि अवधि के दौरान कितनी मेमोरी का उपयोग किया गया है।

मैं उबंटू सर्वर पर यह कैसे कर सकता हूं?

मुझे लगता है कि मैं हर 5 वें सेकेंड में क्रोनबॉज शुरू कर सकता हूं, और एक कमांड का आह्वान करता हूं जो टेक्स्टफाइल में वर्तमान मेमोरी उपयोग को लॉग करता है। लेकिन मौजूदा स्मृति उपयोग को उस प्रारूप में प्राप्त करने के लिए मुझे किस कमांड का उपयोग करना चाहिए जो पाठ फ़ाइल में लॉग इन करना आसान है?


235
2017-10-26 16:50


मूल




जवाब:


मैं पिछले उत्तरों के संयोजन की सलाह देते हैं

watch -n 5 free -m

ध्यान दें कि लिनक्स को किसी भी अतिरिक्त मेमोरी का उपयोग करना पसंद है कैश हार्ड ड्राइव ब्लॉक। तो आप बस मुफ्त में देखना नहीं चाहते हैं 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 चक्र आप बस दबा सकते हैं Ctrl+सी


290
2017-10-26 17:40



धन्यवाद, यह जानकारीपूर्ण है। लेकिन आपके द्वारा उपयोग किए गए कॉलम पर पहले 2896 और फिर 1528 बफर के लिए, इसका मतलब यह नहीं है कि आप इसका उपयोग कर रहे हैं 2896 + 1528? - Jonas
Mem: used आपकी कुल उपयोग की गई स्मृति है। -/+ buffers/cache: used आपकी कुल उपयोग की गई स्मृति है ऋण बफर और कैश। मुझे पता है कि आउटपुट मजाकिया लग रहा है, लेकिन यहां कोई अंकगणित की आवश्यकता नहीं है। आप बस / / + बफर / कैश पंक्ति में उपयोग / मुक्त की तलाश में हैं। - Justin Force
-एच विकल्प बहुत अच्छा है - 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
अब पीईपीआई में उपलब्ध है (pip install ps_mem) तथा गिटहब पर। - Leif Arne Storset
@ थॉमसवेलर: हां, धागे हमेशा स्मृति साझा करते हैं, जबकि प्रक्रिया कुछ या सभी शर्तों को कुछ शर्तों के तहत साझा कर सकती है। - Leif Arne Storset
इसके लिए मैं gnome-system-monitor का उपयोग करता हूं - jms


उपयोग मुक्त आदेश। उदाहरण के लिए, यह का बहिष्कार है 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


यदि आप उपयोग करते हैं तो कुल रैम उपयोग की दृश्य निगरानी के लिए Byobu, यह आपके मेमोरी उपयोग को टर्मिनल के निचले दाएं कोने में रखेगा और जब भी आप किसी भी टर्मिनल सत्र में हों तो चलाएंगे।

जैसा कि आप स्क्रीनशॉट से देख सकते हैं, मेरी वर्चुअल मशीन में 1h3m अपटाइम है, 0.00 लोड, सिस्टम पर उपलब्ध 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