"फ्री-एम" कमांड के आउटपुट की व्याख्या कैसे करें?


48

का आउटपुट free -mहै:

                     total    used    free    shared  buffers  cached
Mem:                  595      482     112         0       63     324
-/+ buffers/cache:              93     501
swap:                   0        0       0

प्रयुक्त स्मृति का कौन सा मान सही है, 482 या 93?

जवाबों:


41

आपके पास 112 एमबी की पूरी तरह से मुफ्त मेमोरी है, लेकिन आपके द्वारा देखे गए 501 एमबीबीटी 'कैश्ड' मेमोरी के बिना है। इसका मतलब यह है कि OS ने आपकी मेमोरी में कुछ सामान डाल दिया है कि यह जल्दी हो जाए। यह इसे "उपयोग" कहता है (इसलिए आपका 'फ्री' नंबर केवल 112 है), लेकिन यह वास्तव में आपके लिए उपलब्ध है यदि आपको इसकी आवश्यकता है।

यह एक अच्छी बात है, क्योंकि अप्रयुक्त स्मृति बेकार स्मृति है। कैश्ड मेमोरी को जरूरत पड़ने पर साफ किया जा सकता है। पुराने "मुझे मेमोरी को साफ करने की आवश्यकता है" सामान लोगों को विंडोज़ 95 के लिए इस्तेमाल करने की ज़रूरत नहीं है: यह सब ठीक है और खुश है :)

आप जिस नंबर की तलाश कर रहे हैं, वह 501 मुक्त है (मेगाबाइट में होने के कारण -m)।

इन पृष्ठों को देखें:

http://www.linuxatemyram.com/
http://www.itworld.com/it-managementstrategy/280695/making-sense-memory-usage-linux


मूल रूप से: "बस दूसरी पंक्ति को देखो, बफ़र्स / कैश के साथ एक"।
नन्ने नो

25

आउटपुट की व्याख्या free: आउटपुट सूची
की पहली पंक्ति free:

  • total आपकी कुल, भौतिक (कोई वर्चुअलाइजेशन नहीं) स्मृति
  • used वर्तमान में इसका कितना उपयोग किया जाता है (कुछ भी करके)
  • free इसमें से कितना पूरी तरह से मुफ्त है (बिल्कुल इस्तेमाल नहीं किया गया है)
  • shared (वहां कुछ भी नहीं, उस कॉलम को अनदेखा करें)
  • buffers कर्नेल बफ़र्स द्वारा उपयोग की जाने वाली मेमोरी
  • cached कैश के लिए इस्तेमाल की जाने वाली मेमोरी

अंतिम दो आइटम, कैश और बफ़र्स, मेमोरी है जो विशिष्ट उपयोगकर्ता प्रक्रियाओं को आवंटित नहीं की जाती है। यह प्रदर्शन को बेहतर बनाने के लिए कर्नेल द्वारा आरक्षित मेमोरी है, लेकिन "एप्लिकेशन" मेमोरी नहीं है। इन क्षेत्रों में कैशिंग नीतियों के आधार पर कैशिंग, मेमोरी प्रेशर, एप्लिकेशन I / O पैटर्न आदि के आधार पर विकास या सिकुड़न होगी।

चूंकि ये दो कॉलम उपयोगकर्ता-आवंटित मेमोरी नहीं हैं, और ज़ोन सिकुड़ सकते हैं (व्यावहारिक रूप से शून्य करने के लिए) यदि उपयोगकर्ता आवंटन की आवश्यकता होती है, तो वे एक अर्थ में "मुक्त" होते हैं - वहां रैम होती है जिसे कर्नेल द्वारा मुक्त किया जा सकता है यदि आपके ऐप्स सक्रिय रूप से इसकी आवश्यकता है।

वही दूसरी पंक्ति आपको बताती है। यह usedकॉलम से बफर और कैश मेमोरी को हटाता है (यही -इसका मतलब है), और +उन्हें freeकॉलम में जोड़ता है ( ) । (राउंडिंग इश्यू होगा।)

(अंतिम पंक्ति आपके स्वैप स्थान की स्थिति को दिखाती है।)

सौजन्य: https://unix.stackexchange.com/a/33549/14497

तो, आपके मामले में 112 एमबी पूरी तरह से मुफ्त मेमोरी है, और यदि आप कैशिंग के लिए उपयोग की जाने वाली मेमोरी को ध्यान में रखते हैं, जिसे जरूरत पड़ने पर उपयोगकर्ता अनुप्रयोगों को आवंटित किया जा सकता है; तब 501 एमबी वास्तविक अधिकतम मेमोरी उपयोग के लिए उपलब्ध है।


स्मृति की रीडआउट की तलाश करने वाला व्यक्ति कभी भी रुचि नहीं रखता है (या लगभग कभी नहीं) कि स्मृति पूरी तरह से कैसे मुक्त है, लेकिन उपयोग करने के लिए कितना स्वतंत्र है। कैश्ड मेमोरी 'उपयोग में' है, लेकिन उपयोग करने के लिए भी स्वतंत्र है, इसलिए आपको इसे देखना चाहिए।
नन्ने नो

मुझे यकीन नहीं है कि आप ऐसा क्यों कहते हैं? ऐसा लगता है कि किसी ने जानबूझकर कैश निकाल दिया है (जो वास्तव में एक बुरी चीज है)? मुद्दा यह है कि एक्यूअल स्टफ (उस प्रोग्राम की तरह जिसे आप उपयोग करना चाहते हैं) लोड करना वास्तव में एक विकल्प है। आप चाहते हैं कि 112 नंबर कम से कम हो, लेकिन आपके सिद्धांत में इसका मतलब यह होगा कि आप कोई प्रोग्राम नहीं खोल सकते। लक्ष्य मैं नहीं कहूँगा। इसके अलावा: वह कैश सिर्फ डिस्क-कैश नहीं है, यह सिस्टम कैश और पसंद भी है
नॉन

@ नन्ने, ठीक है। मैं मानती हूं यार। सुधारों के लिए धन्यवाद। मैंने उसी को प्रतिबिंबित करने के लिए अपना उत्तर अपडेट कर दिया है।
साजी 89

##### आप सभी को बताने के लिए @ नन्ने @ devav2 @ saji89 को धन्यवाद दें - आप
#####################।

10

@ Saji89 द्वारा उत्तर उत्कृष्ट है, लेकिन इन दिनों free -mअब -/+ buffers/cacheलाइन को प्रिंट नहीं करता है , बल्कि इसके बजाय availableपहली पंक्ति में एक नए कॉलम में उपलब्ध रैम की मात्रा को रखता है , उदाहरण के लिए:

ubuntu@pg_master:~$ free -m
              total        used        free      shared  buff/cache   available
Mem:          61406        1571         506       17131       59328       42150
Swap:             0           0           0
ubuntu@pg_master:~$ free -V
free from procps-ng 3.3.10

आप मुक्त करने के लिए प्रतिबद्ध पढ़ सकते हैं (1) जिसने उनके रेपो में लाइन को हटा दिया । साथ ही नए availableकॉलम को जोड़ने के लिए प्रतिबद्ध है


4

free कमांड अप्रयुक्त और उपयोग की गई मेमोरी और स्वैप स्पेस के बारे में जानकारी दिखाता है।

नीचे http://www.linfo.org/free.html द्वारा दिया गया विवरण दिया गया है

मेम द्वारा लेबल की गई पहली पंक्ति, भौतिक मेमोरी उपयोग को प्रदर्शित करती है, जिसमें बफ़र्स और कैश को आवंटित स्मृति की मात्रा भी शामिल है। एक बफर, जिसे बफर मेमोरी भी कहा जाता है, आमतौर पर मेमोरी के एक हिस्से के रूप में परिभाषित किया जाता है जो डेटा के लिए एक अस्थायी होल्डिंग जगह के रूप में सेट किया जाता है जिसे बाहरी डिवाइस से भेजा जा रहा है या प्राप्त किया जा सकता है, जैसे कि एचडीडी, कीबोर्ड, प्रिंटर या नेटवर्क।

डेटा की दूसरी पंक्ति, जो - / + बफ़र्स / कैश के साथ शुरू होती है , वर्तमान में सिस्टम बफर कैश के लिए समर्पित भौतिक मेमोरी की मात्रा दिखाती है। यह एप्लिकेशन प्रोग्राम के संबंध में विशेष रूप से सार्थक है, क्योंकि सिस्टम पर फ़ाइलों से एक्सेस किए गए सभी डेटा जो रीड () और राइट के उपयोग के माध्यम से किए जाते हैं () सिस्टम कॉल 1 इस कैश से गुजरते हैं। यह कैश HDD या अन्य डिस्क से पढ़ने या लिखने की आवश्यकता को कम या समाप्त करके डेटा तक पहुंच को बहुत तेज कर सकता है।

तीसरी पंक्ति, जो स्वैप के साथ शुरू होती है , कुल स्वैप स्थान के साथ-साथ वर्तमान में उपयोग में आने वाली और अभी भी कितनी उपलब्ध है, यह दर्शाती है।

अपने सिस्टम के मेमोरी उपयोग का विश्लेषण करें

आपने free'-m' विकल्प के साथ कमांड का उपयोग किया है, जिसका उपयोग मेगाबाइट में परिणाम प्रदर्शित करने के लिए किया जाता है

-m, --mega
              Display the amount of memory in megabytes.

कुल मेमोरी 595 है (प्रयुक्त + मुफ़्त)

प्रयुक्त: 482 नि: शुल्क: 112

595MB में से 482MB आपके सिस्टम द्वारा उपयोग किया जाता है, जिसमें केवल 93MB सक्रिय प्रोग्राम द्वारा उपयोग किया जाता है और शेष 324MB कैश में होता है

इसलिए जब आप भविष्य में कोई कार्यक्रम चलाते हैं, तो यह कहें कि 120MB की आवश्यकता है। सभी 112 एमबी (वर्तमान में मुफ्त) दिए जाएंगे और शेष 8 एमबी गैर-सक्रिय प्रोग्राम बफर / कैश से लिए जाएंगे।

संपादित करें : यह लिंक मिला , जो अच्छी व्याख्या प्रदान करता है।


मुझे नहीं लगता कि यह सही है। यदि आप कैश त्यागते हैं तो आपके पास 93mb का उपयोग होता है इसलिए आपके पास 501 बचे हैं।
नेने

आपको क्यों लगता है कि यह सही नहीं है। ओपी सिस्टम पर मुफ्त मेमोरी 112 एमबी + 324 एमबी (जो कैश की गई है)। इसलिए जब कोई नया प्रोग्राम शुरू होता है तो वह पहले 112MB और फिर कैश का उपयोग करेगा।
devav2

मूल रूप से, क्योंकि 595-93=501 (और गोलाई के लिए 1mb देते हैं), और यह थोड़े पढ़ता है जैसे कि 112वह संख्या है जिसे आप सोचते हैं कि ऑप खोज रहा है।
नन्ने नोव

501 सही है और यही मैं समझाने की कोशिश कर रहा हूं। 595 में से, 482 का उपयोग किया जाता है। जिसमें केवल 93 कार्यक्रमों द्वारा उपयोग की जाने वाली सक्रिय मेमोरी है। तो 112 मुफ्त उपलब्ध है + यदि अधिक आवश्यकता हो, तो मेमोरी को कैश से लिया जा सकता है, जो पहले इस्तेमाल किया गया था और वर्तमान में सक्रिय नहीं है।
devav2

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