14.04 से 16.04 तक `फ्री` आउटपुट में क्या बदलाव हैं?


29

मैंने देखा कि freeट्रस्टी और ज़ेनियल के बीच कमांड रिपोर्टिंग कहीं बदल गई है। यहाँ मेरे भरोसेमंद कंप्यूटरों में से एक `फ्री-एम 'दिखाता है:

$ free -m
             total       used       free     shared    buffers     cached
Mem:          7916       7645        271         99        455       1764
-/+ buffers/cache:       5426       2490
Swap:        24999        805      24194

यहाँ पर (एक अलग) Xenial प्रणाली के बराबर है:

$ free -m
              total        used        free      shared  buff/cache   available
Mem:           3553        1192         857          16        1504        2277
Swap:          3689           0        3689

+/- बफ़र्स / कैश लाइन, जिसे मैं मुख्य रूप से देखता था, चला गया है। मुझे नए नंबरों की व्याख्या कैसे करनी चाहिए?

  • क्या मेम इस्तेमाल किया / मुफ्त में बफ़र्स और कैश शामिल हैं या नहीं?
  • कौन से नंबर पहले संस्करण के "+/- बफ़र्स / कैश" लाइन पर प्रयुक्त और मुफ्त संख्याओं के बराबर हैं?

जवाबों:


16

कृपया नमूना उत्पादन मैं से मिला पर विचार freeमेरे में आदेश Ubuntu 12.04:

           total       used       free     shared    buffers     cached
Mem:       8074640    6187480    1887160     377056     365128    2113156
-/+ buffers/cache:    3709196    4365444
Swap:     15998972      82120   15916852

मेमused (kb_main_used) फ़ील्ड मान अब इस तरह की जाती है:

used = total - free - cached - buffers

पहले, यह हुआ करता था:

used = total - free

यह परिवर्तन निम्न प्रतिबद्ध https://gitlab.com/procps-ng/procps/commit/6cb75efef85f735b72e6c96f197f358f511f8ed9 में शुरू किया गया था

एक मध्यवर्ती मूल्य:

buffers_plus_cached = buffers (kb_main_buffers) + cached (kb_main_cached) = 365128 + 2113156 = 2478284

+/- बफ़र्स / कैश मान की गणना इस तरह की जाती है:

buffers = kb_main_used - buffers_plus_cached = 6187480 - 2478284 = 3709196
/
cache = kb_main_free + buffers_plus_cached = 1887160 + 2478284 = 4365444

नए बफ़ / कैश मान की गणना इस प्रकार है:

buff/cache = kb_main_buffers+kb_main_cached = 365128 + 2113156 = 2478284

यह buffers_plus_cachedपिछले संस्करणों में उपयोग किए गए के समान है , अंतर यह है कि पहले इसका उपयोग आंतरिक रूप से किया जाता था, और अब इसका सीधा प्रदर्शन किया जाता है, और आगे की गणना की गई रेखा -/+ buffers/cacheको हटा दिया गया है

अधिक जानकारी के लिए, कृपया इन कमिट्स की जाँच करें, जहाँ ये परिवर्तन पेश किए गए थे: https://gitlab.com/procps-ng/procps/commit/f47001c9e91a1e9b12db4497051a212bf49a87b1 https://gitlab.com/procps-ng/procps/comb/9/9908/8908

नए availableक्षेत्र के रूप में , 2.6.27 से अधिक पुराने लिनक्स कर्नेल के लिए, इसका मूल्य मान के समान है free, लेकिन कर्नेल के बाद के संस्करणों के लिए, यह थोड़ा अलग है:

Estimation of how much memory  is  available  for  starting  new
applications,  without swapping. Unlike the data provided by the
cache or free fields, this field takes into account  page  cache
and also that not all reclaimable memory slabs will be reclaimed
due to  items  being  in  use  (MemAvailable  in  /proc/meminfo,
available   on   kernels  3.14,  emulated  on  kernels  2.6.27+,
otherwise the same as free)

सौजन्य: http://manpages.ubuntu.com/manpages/xenial/en/man1/free.1.html

तो, आपके प्रश्नों का विशिष्ट उत्तर होगा:

  • मूल्यों freeकी गणना में बफ़र्स / कैश शामिल हैं के नए संस्करण Mem used/free
  • +/- buffers/cacheमूल्य कि के पिछले संस्करणों में वहाँ हुआ करता था freeअब के रूप में उपलब्ध है:
    • - / + बफ़र्स / कैशused = करंट Mem usedकॉलम (इसकी गणना ऊपर दी गई है)
    • - / + बफ़र्स / कैशfree वर्तमान नए कॉलम में अधिक सटीक मूल्य के रूप में उपलब्ध हैavailable

एनबी:kb_* चर नाम आंतरिक स्रोत कोड में इस्तेमाल किया नाम हैं।


1
शीर्ष पर और नीचे दिए गए विवरणों के विशिष्ट उत्तर = "tl; डॉ भाग" को डालकर इस उत्तर को बेहतर बनाया जा सकता है (अभी यह रिवर्स है)।
निकाना रेक्लावैक्स

यह एक महान विवरण है, लेकिन OpenVZ पर ubuntu 16.04 चल रहा है, मैं देख रहा हूं कि "उपलब्ध" पिछले "मुक्त" पर "+/- बफ़र्स / कैश" में मुफ़्त कॉलम के करीब नहीं आता है । वही ऐप चलाने के बाद मुझे 14.04 पर 120MB मुफ्त और 16.04 पर 0 उपलब्ध है। या तो उन दो सिस्टम पर रैम का उपयोग पूरी तरह से अलग है या उन मुफ्त पैकेजों में से एक गलत है (या यह सिर्फ OpenVZ इन चीजों के लिए एक गड़बड़ है)।
सैंड्रो एंटोउकी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.