Proszę rozważyć przykładowy wynik otrzymany z free
polecenia w moim Ubuntu 12.04
:
total used free shared buffers cached
Mem: 8074640 6187480 1887160 377056 365128 2113156
-/+ buffers/cache: 3709196 4365444
Swap: 15998972 82120 15916852
Wartość pola Memused
(kb_main_used) jest teraz obliczana w następujący sposób:
used = total - free - cached - buffers
Wcześniej było to:
used = total - free
Ta zmiana została wprowadzona w następującym zatwierdzeniu https://gitlab.com/procps-ng/procps/commit/6cb75efef85f735b72e6c96f197f358f511f8ed9
Wartość pośrednia:
buffers_plus_cached = buffers (kb_main_buffers) + cached (kb_main_cached) = 365128 + 2113156 = 2478284
+/- wartość buforów / pamięci podręcznej jest obliczana w następujący sposób:
buffers = kb_main_used - buffers_plus_cached = 6187480 - 2478284 = 3709196
/
cache = kb_main_free + buffers_plus_cached = 1887160 + 2478284 = 4365444
Nowa wartość buff / cache jest obliczana w następujący sposób:
buff/cache = kb_main_buffers+kb_main_cached = 365128 + 2113156 = 2478284
Jest to to samo, co buffers_plus_cached
w poprzednich wersjach. Różnica polega na tym, że poprzednio był używany wewnętrznie, a teraz został bezpośrednio wyświetlony, a linia obliczona dalej -/+ buffers/cache
została usunięta.
Aby uzyskać więcej informacji, sprawdź te zatwierdzenia, w których wprowadzono te zmiany:
https://gitlab.com/procps-ng/procps/commit/f47001c9e91a1e9b12db4497051a212cf49a87b1
https://gitlab.com/procps-ng/procps/commit/c9908b597d9898b597d9
Począwszy od nowego available
pola, dla jąder Linux starszych niż 2.6.27 jego wartość jest taka sama jak free
wartość, ale dla późniejszych wersji jądra jest nieco inna:
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)
Dzięki uprzejmości:
http://manpages.ubuntu.com/manpages/xenial/en/man1/free.1.html
Konkretna odpowiedź na twoje pytania brzmiałaby:
- Nowa wersja
free
zawiera bufory / pamięć podręczną w obliczeniach Mem used/free
wartości.
+/- buffers/cache
Wartość, która kiedyś tam w poprzednich wersjach free
jest obecnie dostępna jako:
- - / + bufory / pamięć podręczna
used
= bieżąca Mem used
kolumna (jej obliczenia opisano szczegółowo powyżej)
- - / + bufory / pamięć podręczna
free
jest dostępna jako dokładniejsza wartość w bieżącej nowej kolumnieavailable
Uwaga: Do kb_*
nazwy zmiennych są wewnętrzne nazwy używane w kodzie źródłowym.