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

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

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

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

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

watch -n 5 free -m

ध्यान दें कि लिनक्स किसी भी अतिरिक्त मेमोरी का उपयोग करना पसंद करता है कैश हार्ड ड्राइव ब्लॉक. तो आप सिर्फ मुफ्त में नहीं देखना चाहते Mem. आप देखना चाहते हैं free का स्तंभ -/+ buffers/cache: पंक्ति। यह दिखाता है कि अनुप्रयोगों के लिए कितनी मेमोरी उपलब्ध है । तो मैं बस भाग गया free -m और यह मिल गया:

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

मुझे पता है कि मैं उपयोग कर रहा हूँ 1528 एमबी और है 2170 एमबी मुक्त।

नोट: इसे रोकने के लिए watch साइकिल आप बस दबा सकते हैं Ctrl+C.

मुझे लगता है htop सबसे अच्छा समाधान है ।

  • sudo apt-get install htop

इस तरह आप देखेंगे कि कौन से प्रोग्राम अधिकांश रैम का उपयोग कर रहे हैं । और आप चाहें तो आसानी से एक को समाप्त कर सकते हैं । यहाँ एक स्क्रीनशॉट है!

यदि आप प्रत्येक चल रही प्रक्रिया द्वारा उपयोग की जाने वाली मेमोरी के अच्छे टूटने की तलाश में हैं, तो मैं जाँच करने की सलाह दे सकता हूँ 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       cron120.0 KiB +  50.0 KiB = 170.0 KiB       master204.0 KiB + 107.5 KiB = 311.5 KiB       qmgr396.0 KiB +  94.0 KiB = 490.0 KiB       tlsmgr460.0 KiB +  65.0 KiB = 525.0 KiB       rsyslogd384.0 KiB + 171.0 KiB = 555.0 KiB       sudo476.0 KiB +  83.0 KiB = 559.0 KiB       monit568.0 KiB +  60.0 KiB = 628.0 KiB       freshclam552.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-server888.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       mysqld147.4 MiB +  36.5 MiB = 183.9 MiB       apache2 (7)---------------------------------                        208.1 MiB================================= Private  +   Shared  =  RAM used       Program

एकमात्र हिस्सा जो मुझे पसंद नहीं है वह यह है कि स्क्रिप्ट रूट विशेषाधिकारों की आवश्यकता का दावा करती है । मुझे अभी तक यह देखने का अवसर नहीं मिला है कि ऐसा क्यों है ।

का प्रयोग करें मुक्त कमान। उदाहरण के लिए, यह है ऊपुत का free -m:

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

free -m | grep /+ केवल दूसरी पंक्ति वापस आ जाएगी:

-/+ buffers/cache:        947       1064

देखो आदेश उपयोगी हो सकता है. कोशिश करो watch -n 5 free हर पांच सेकंड में अपडेट के साथ मेमोरी उपयोग की निगरानी करने के लिए ।

आप इसका उपयोग करके कर सकते हैं cat /proc/meminfo.

MemTotal:        4039160 kBMemFree:          309796 kBMemAvailable:    3001052 kBBuffers:          345636 kBCached:          2341288 kBSwapCached:            8 kBActive:          1725160 kBInactive:        1551652 kBActive(anon):     538404 kBInactive(anon):    70076 kBActive(file):    1186756 kBInactive(file):  1481576 kBUnevictable:          32 kBMlocked:              32 kBSwapTotal:       4194300 kBSwapFree:        4194044 kBDirty:                 0 kBWriteback:             0 kBAnonPages:        589988 kBMapped:           255972 kBShmem:             18596 kBSlab:             374888 kBSReclaimable:     310496 kBSUnreclaim:        64392 kBKernelStack:        6976 kBPageTables:        26452 kBNFS_Unstable:          0 kBBounce:                0 kBWritebackTmp:          0 kBCommitLimit:     6213880 kBCommitted_AS:    3589736 kBVmallocTotal:   34359738367 kBVmallocUsed:           0 kBVmallocChunk:          0 kBHardwareCorrupted:     0 kBAnonHugePages:         0 kBShmemHugePages:        0 kBShmemPmdMapped:        0 kBCmaTotal:              0 kBCmaFree:               0 kBHugePages_Total:       0HugePages_Free:        0HugePages_Rsvd:        0HugePages_Surp:        0Hugepagesize:       2048 kBDirectMap4k:      147392 kBDirectMap2M:     4046848 kB

मुझे अभी यह समाधान मिला है और यह बहुत अच्छी तरह से काम करता है, सीएलआई के माध्यम से एक ग्राफिकल इंटरफ़ेस बनाता है:

# fixed linkgit clone https://github.com/aristocratos/bashtopcd bashtopbash bashtop

Screenshot

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

जैसा कि आप स्क्रीनशॉट से देख सकते हैं, मेरी वर्चुअल मशीन में 1 एच 3 एम अपटाइम, 0.00 लोड है, इसमें 2.8 गीगाहर्ट्ज (वर्चुअल) प्रोसेसर और सिस्टम पर उपलब्ध रैम का 994 एमबी (21%) है ।

Byobu in use

एकल लाइन समाधान और आउटपुट:

free -m | grep "Mem:"

यहां अपेक्षित आउटपुट का एक उदाहरण दिया गया है:

Mem:           3944         652         302          18        2990        2930

मैं उपयोग करूंगा कैक्टि. यह समय की अवधि में आपके मेमोरी उपयोग आदि को ग्राफ करेगा, और आप अपने वेब ब्राउज़र का उपयोग करके उपयोग की जांच कर पाएंगे ।