सवाल मुक्त उत्पादन में बफर / कैश लाइन का अर्थ


मेरा सर्वर क्यों दिखाता है

            total      used      free   shared buffers    cached
    Mem: 12286456  11715372    571084        0   81912   6545228
-/+ buffers/cache:  5088232   7198224
   Swap: 24571408     54528  24516880

मुझे लिनक्स में स्मृति की गणना करने पर कोई जानकारी नहीं है। मुझे लगता है कि यह कहता है कि 5088232 का उपयोग किया जाता है जहां 7198224 मुफ़्त है, जिसका अर्थ है कि यह वास्तव में 5 जीबी रैम का उपभोग कर रहा है?


150
2017-11-17 10:37


मूल


serverfault.com/questions/23433/... - Kyle Brandt♦
linuxatemyram.com - Sasha


जवाब:


मूल्यों का अर्थ

पहली पंक्ति का अर्थ है:

  • total: आपकी कुल (भौतिक) रैम (एक छोटे से बिट को छोड़कर कि कर्नेल स्थायी रूप से स्टार्टअप पर खुद के लिए आरक्षित है); यही कारण है कि यह सीए दिखाता है। 11.7 जीआईबी, और 12 जीबीबी नहीं, जो आपके पास शायद है।
  • used: ओएस द्वारा उपयोग में स्मृति।
  • free: स्मृति उपयोग में नहीं है।

total = used + free

  • shared / buffers / cached: यह विशिष्ट उद्देश्यों के लिए स्मृति उपयोग दिखाता है, इन मानों के मूल्य में शामिल हैं used

दूसरी पंक्ति पहले लाइन मान समायोजित करती है। यह मूल मूल्य देता है used  ऋण योग buffers+cached और के लिए मूल मूल्य free  प्लस योग buffers+cached, इसलिए इसका शीर्षक। ये नए मूल्य अक्सर पहली पंक्ति के मुकाबले अधिक अर्थपूर्ण होते हैं।

अंतिम पंक्ति (Swap:) स्वैप स्पेस उपयोग (यानी मेमोरी सामग्री जो अस्थायी रूप से डिस्क पर ले जाया गया है) के बारे में जानकारी देता है।

पृष्ठभूमि

वास्तव में समझने के लिए कि संख्याओं का क्या अर्थ है, आपको लिनक्स में वर्चुअल मेमोरी (वीएम) सबसिस्टम के बारे में कुछ पृष्ठभूमि चाहिए। बस एक छोटा संस्करण: लिनक्स (अधिकांश आधुनिक ओएस की तरह) हमेशा कैशिंग सामग्री के लिए फ्री रैम का उपयोग करने का प्रयास करेगा Mem: free लगभग हमेशा बहुत कम होगा। इसलिए रेखा -/+ buffers/cache: दिखाया गया है, क्योंकि यह दिखाता है कि कैशों को अनदेखा करते समय कितनी मेमोरी मुक्त होती है; यदि स्मृति दुर्लभ हो जाती है तो कैश स्वचालित रूप से मुक्त हो जाएंगे, इसलिए वे वास्तव में कोई फर्क नहीं पड़ता।

अगर लिनक्स सिस्टम वास्तव में स्मृति पर कम है free में मूल्य -/+ buffers/cache: रेखा कम हो जाती है।

संख्याओं के अर्थ के बारे में अधिक जानकारी के लिए, उदाहरण देखें प्रश्न:

Procs 3.3.10 में परिवर्तन

ध्यान दें कि आउटपुट free procs 3.3.10 में बदल दिया गया था (2014 में जारी)। रिपोर्ट किए गए कॉलम अब हैं "कुल", "प्रयुक्त", "मुफ़्त", "साझा", "बफ / कैश", "उपलब्ध", और कुछ मानों का अर्थ बदल गया, मुख्य रूप से लिनक्स कर्नेल के स्लैब कैश के लिए बेहतर खाता।

देख डेबियन बग रिपोर्ट # 565518 प्रेरणा के लिए, और इसमें क्या परिवर्तन करते हैं free उत्पादन 14.04 से 16.04 मतलब है? अधिक जानकारी के लिए जानकारी।


215
2017-11-17 11:42



क्या आप विस्तार कर सकते हैं कि किस प्रकार की चीजें लिनक्स कैशिंग हो सकती हैं? क्या यह ऐसी फाइलें होंगी जिन्हें एक्सेस किया गया हो या नेटवर्क सामान हो? - CMCDragonkai
@ सीएमसीडीआरगोनकाई: इसका जवाब serverfault.com/questions/23433/... विस्तार से पते "कैश" और "बफर" का गठन करते हैं। - sleske
मुझे नहीं लगता कि "कुल = प्रयुक्त + मुक्त" कथन सही है, मेरी मशीन पर निम्न आउटपुट देखें: $ free -h  total used free shared buff/cache available  Mem: 3.4G 585M 152M 11M 2.6G 2.5G  Swap: 4.0G 84M 3.9G - Sebastian
@ सेबेस्टियन: आह, दिलचस्प। ऐसा लगता है कि मुक्त का बहिष्कार बदल गया था (3.3.10 में)। मैंने इसका जवाब देने के लिए अपना जवाब संपादित किया। यदि आप इस परिवर्तन में रूचि रखते हैं, तो एक नया प्रश्न पूछने पर विचार करें :-)। - sleske
total = used + free + buff/cache - danger89


किसी भी व्यक्ति के लिए एक और अधिक सरल, चरण-दर-चरण स्पष्टीकरण की आवश्यकता है, जांचें http://thoughtsbyclayg.blogspot.com/2008/09/display-free-memory-on-linux-ubuntu.html, उनकी व्याख्या ने मुझे बहुत मदद की।


7
2018-02-13 22:06



meta.stackexchange.com/q/8231/133242 - Matt Ball


बफर / कैश लाइन आपको दिखाती है कि प्रोग्राम (उन कॉलमों में से पहले) द्वारा कितनी मेमोरी का उपयोग किया जाता है, और प्रोग्राम (दूसरे कॉलम) का उपयोग करने के लिए स्वतंत्र है। यह एक काफी गूढ़ संख्या है, और कुछ ऐसा नहीं जो आप वास्तव में अभ्यास में बहुत अधिक देखेंगे।


2
2017-11-17 11:03



और पहली पंक्ति (मेम लाइन) का क्या अर्थ है - Muahmmad Zeeshan
सिस्टम में 12 जीबी रैम स्थापित है, जिसमें से 11.5 जीबी का उपयोग किया जाता है और 0.5 जीबी या तो वर्तमान में अप्रयुक्त है। बफर (नेटवर्क कनेक्शन इत्यादि) के लिए उपयोग की जाने वाली लगभग 82 एमबी का उपयोग किया जाता है, जबकि डिस्क पर डेटा की प्रतियों को स्टोर करने के लिए लगभग 6.5 जीबी का उपयोग किया जा रहा है, ताकि डेटा को दोबारा पढ़ने की आवश्यकता न हो। - womble♦
@ मुहम्मद: "82 एमबी मुफ्त है।" - नहीं, 57 एमआईबी मुक्त है (लेकिन यह वास्तव में कोई फर्क नहीं पड़ता, मेरा जवाब देखें)। "अब इसका मतलब है कि सिस्टम इसकी सीमा तक पहुंच गया है" - नहीं, बिलकुल नहीं। इस प्रणाली में कैशिंग के लिए 6.9 जीआईबी उपयोग है, जो इसे आसानी से अनुप्रयोगों को देगा, इसलिए बहुत सारे कमरे हैं। इसके अलावा, स्वैप उपयोग बहुत कम है (ओनी सीए 50 एमआईबी)। अगर स्मृति तंग हो रही है, तो स्वैप उपयोग बढ़ेगा। वर्तमान में आप मुश्किल से आधे रैम का उपयोग कर रहे हैं। - sleske
क्या आपने किसी बिंदु पर एक नया प्रश्न पूछने पर विचार किया है? - womble♦
मैं असहमत हूं, बफर / कैश लाइन सिस्टम की वास्तविक मुक्त स्मृति है और इसलिए यदि आप जानना चाहते हैं कि सिस्टम में प्रोग्राम के लिए कमरा है या नहीं तो सबसे प्रासंगिक है। - eckes