सिस्टम मॉनिटर में मेमोरी उपयोग रिपोर्ट और मुफ्त में क्या अंतर है?


14

मैं सिस्टम मॉनिटर 2.28.0 का उपयोग कर रहा हूं। जब मैं संसाधन टैब में देखता हूं, तो मुझे मेमोरी और स्वैप के लिए एक अच्छा ग्राफ दिखाई देता है। मेमोरी 3.8 के लगभग 60% 2.3 GiB है। जब मैं फ्री कमांड टाइप करता हूं, तो मुझे:

             total       used       free     shared    buffers     cached
Mem:       3994908    3962396      32512          0     100852    1477032
-/+ buffers/cache:    2384512    1610396
Swap:      8000328      28468    7971860

cat / proc / meminfo | grep MemFree देते हैं

MemFree:           34536 kB

स्थिति कई मिनटों तक बनी रही। मैंने एक स्क्रिप्ट के साथ बहुत सारी प्रक्रिया शुरू की और स्क्रिप्ट मुफ्त मेमोरी कम होने की प्रतीक्षा कर रही है। प्रक्रिया टैब (या शीर्ष के साथ) में जो मैं देख रहा हूं, उसके अनुसार, सिस्टम मॉनिटर में संख्या उस प्रक्रिया की मेमोरी के कुल के लिए बहुत करीब लगती है जिसे किसी ने मुफ्त में रिपोर्ट किया था।

धन्यवाद

जवाबों:


15

अंतर यह है कि "बफ़र्स" और "कैश्ड" मेमोरी "प्रयुक्त" गणना में शामिल है या नहीं।

आमतौर पर, लिनक्स सिस्टम मेमोरी का उपयोग कर्नेल द्वारा दो उद्देश्यों के लिए किया जाता है: प्रक्रियाएं और फ़ाइल / नेटवर्क कैश / बफ़र्स। यदि आप इसके आउटपुट को करीब से देखते हैं free, तो यह पहले से ही दिखाया गया है:


             total       used       free     shared    buffers     cached
Mem:       3994908    3962396      32512          0     100852    1477032
-/+ buffers/cache:    2384512    1610396
Swap:      8000328      28468    7971860

यदि आप "बफ़र्स" और "कैश" जोड़ते हैं, और फिर "उपयोग किए गए" कॉलम से घटाते हैं, तो आपको "इस्तेमाल किया" (दूसरी पंक्ति जो शुरू होती है -/+ buffers/cache) के तहत दूसरी पंक्ति मिलेगी , जिसमें 2.3G (2384512) के बारे में दिखाया गया है उपयोग, जो रिपोर्ट में बताई गई मेमोरी से मेल खाता है कि सिस्टम मॉनिटर रिपोर्टिंग कर रहा है (यह बफ़र्स / कैश्ड को अनदेखा कर रहा है क्योंकि वे अधिक प्रक्रियाओं के लिए जगह बनाने के लिए चले जाएंगे)।

/proc/meminfoवास्तव में पहली पंक्ति के "मुक्त" कॉलम (32512 के करीब 34536 के करीब - यह दो कमांड आउटपुट के बीच बदल गया है) के मुकाबले आपका grep मेल खाता है।


धन्यवाद, मुझे आश्चर्य है कि सिस्टम को कैश में 1.5 गिग की आवश्यकता क्यों थी, लेकिन यह स्पष्ट है।
गिलौम कोटे

1
यह "उपयोग" की तुलना में "आवश्यकता" की बात कम है। उस समय, यह हार्ड ड्राइव से कम से कम इतना पढ़ा था, और इसे फिर से उपयोग करने की आवश्यकता होने पर इसे अतिरिक्त मेमोरी में रखा था।
कीस कुक

0

जब मुझे सिस्टम-मॉनीटर पर अपना हाथ मिला, तो "संसाधन" टैब में बताए गए मेमोरी उपयोग freeकॉलम में से एक ही था /usr/bin/free

समस्या यह है कि निशुल्क भौतिक मेमोरी लगभग 0, जल्द या बाद में है: लिनक्स कैश एग्रेसिव रूप से होता है इसलिए आपके द्वारा रैम खरीदने पर जो पैसा खर्च किया जाता है वह कुशलता से उपयोग किया जाता है। और इसका मतलब यह था कि ग्राफ लगातार दिखाएगा> 98% मेमोरी उपयोग, जो बेकार था।

इसलिए मैंने / हमने -/+ buffers/cache:लाइन ऑफ लाइक करने का फैसला किया /usr/bin/free। इस तरह, ग्राफ़ अर्थपूर्ण है और उपयोगकर्ता को मेमोरी की भौतिक स्थिति के बजाय ~ एप्लिकेशन / यूज़रलैंड मेमोरी उपयोग को देखने दें।

मुझे पता है, यह थोड़ा भ्रामक है, क्योंकि अधिकांश (एल) उपयोगकर्ता यह नहीं समझते हैं कि मुफ्त शारीरिक मेमोरी पैसे और प्रदर्शन की बर्बादी है। मुझे काम में एक ही समस्या का सामना करना पड़ा: हर सोमवार को, सर्वर रिबूट होगा, और अगले 24H में, प्रत्येक सर्वर "मेमोरी फुल" अलर्ट को ट्रिगर करेगा। इसलिए मेरे पास सिस्टम-मॉनीटर की तरह ही नि: शुल्क मेमोरी संगणना निर्धारित थी।

वर्तमान सोलारिस में एक ही समस्या है: ZFS Cache (ARC) को नि: शुल्क मेमोरी में शामिल नहीं किया गया है, जैसे कि टूल द्वारा रिपोर्ट की गई vmstatबेवकूफ बेवकूफ DB प्रशंसा करता है कि "ZFS बुरा है" :)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.