Як інтерпретувати вихід команди "free -m"?


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 мбіт, який ви бачите, не має «кешованої» пам’яті. Це означає, що ОС увімкнула деякі речі у вашу пам’ять, щоб пройти швидше. Він називає це "вживаним" (тому ваш "безкоштовний" номер становить лише 112), але він фактично доступний для вас, якщо він вам потрібен.

Це гарна річ, адже невикористана пам'ять - марна пам’ять. Кешована пам'ять може бути очищена за потреби. Тут не потрібні старі речі "Мені потрібно прибрати пам'ять", які люди раніше використовували для Windows 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 Пам'ять, що використовується для кешу

Останні два елементи - кеш і буфери - це пам'ять, яка не виділяється на конкретні користувацькі процеси. Це пам'ять, зарезервована ядром для покращення загальної продуктивності, але не є "додатковою" пам'яттю. Ці області будуть рости або скорочуватися залежно від політики ядра щодо кешування, тиску пам'яті, моделей вводу / виводу додатків тощо.

Оскільки ці два стовпці не призначені користувачем пам’яті, і зони можуть скорочуватися (практично до нуля), якщо цього вимагають призначені користувачем, вони є в певному сенсі «вільними» - є оперативна пам’ять, яка може бути звільнена ядром, якщо ваші програми активно це потребує.

Ось що вам розповідає другий рядок. Він видаляє буфер і кеш-пам'ять зі usedстовпця (ось що -означає) і додає ( +) їх до freeстовпця. (Проблема округлення відбудеться.)

(Останній рядок показує стан вашого місця обміну.)

Люб’язно: https://unix.stackexchange.com/a/33549/14497

Отже, у вашому випадку 112 Мб - це абсолютно вільна пам'ять, і якщо ви враховуєте пам'ять, яка використовується для кешування, яка при необхідності може бути виділена користувальницьким програмам; то 501 Мб - це фактично максимальна пам'ять, доступна для використання.


Людина, яка шукає зчитування пам’яті, ніколи не зацікавлена ​​(або майже ніколи) в тому, скільки пам’яті є абсолютно вільною, а скільки вільною для використання. кешована пам’ять "використовується", але також є вільною для використання, тому вам слід поглянути на це.
Нанна

Я не дуже впевнений, чому ти це кажеш? Здається, це означає, що хтось навмисно видаляв кеш (що справді погано)? Справа в тому, що завантажувати в цю пам’ять речі acuall (наприклад, програму, яку ви хочете використовувати), це насправді варіант. Ви хочете, щоб цей номер 112 був якомога меншим, але це означало б, що у вашій теорії неможливо відкрити жодну програму. Не мета, яку я б сказав. Також: кеш-пам'ять - це не лише кеш-диск, це також кеш-пам'ять системи і
подібне

@Nanne, добре. Я згоден, людина. Дякуємо за виправлення. Я оновив свою відповідь, щоб відобразити те саме.
saji89

##### ДЯКУЄМО ВСІМ @ Nanne @ 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

Перший рядок, позначений Mem , відображає використання фізичної пам'яті, включаючи об'єм пам'яті, виділений на буфери та кеші. Буфер, який також називають буферною пам'яттю, зазвичай визначається як частина пам'яті, яка відводиться як тимчасове місце утримування даних, що надсилаються або отримуються із зовнішнього пристрою, такого як жорсткий диск, клавіатура, принтер або мережа.

Другий рядок даних, який починається з - / + буферів / кеш-пам'яті , показує обсяг фізичної пам'яті, що в даний час присвячений кешу системного буфера. Це особливо важливо щодо прикладних програм, оскільки всі дані, доступ до яких здійснюється з файлів у системі, які виконуються за допомогою системних викликів read () та write (), проходять через цей кеш. Цей кеш може значно пришвидшити доступ до даних, зменшивши або усунувши потребу в читанні або записі на жорсткий диск або інший диск.

Третій рядок, який починається з Swap , показує загальний простір підкачки, а також кількість його в даний час використовується і скільки ще доступно.

Дозволяє проаналізувати використання пам'яті вашої системи

Ви використовували freeкоманду з опцією '-m', яка використовується для відображення результату в мегабайтах

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

Загальна пам'ять - 595 (використовується + безкоштовно)

Використовується: 482 Безкоштовно: 112

482 Мб із 595 Мб використовується вашою системою, в якій лише 93 МБ використовуються активними програмами, а решта 324 МБ - у кеші

Тож коли ви запускаєте будь-яку програму в майбутньому, скажіть, що потрібно більше 120 Мб. Всі 112 МБ (наразі безкоштовно) будуть надані, а решта 8 МБ буде взято з неактивного буфера програми / кешу.

Редагувати : Знайдено це посилання , яке дає хороші пояснення.


Я не думаю, що це правильно. Якщо ви відкинете кеш, у вас є 93mb, тому у вас залишилось 501.
Нанна

Чому ви вважаєте, що це не правильно. Вільна пам'ять в системі OP становить 112 Мб + 324 МБ (що є кешованою). Отже, коли запускається нова програма, вона спочатку використовуватиме 112 Мб, а потім кеш.
devav2

в основному, тому що 595-93=501 і (дайте або візьміть 1мб для округлення), і він ніби читає так, як ніби 112це число, яке ви думаєте, що оп шукає.
Нанна

501 правильно, і саме це я намагаюся пояснити. Із 595 використовується 482. У якій лише 93 - активна пам'ять, яку використовують програми. Отже, 112 - це вільний доступ +, якщо потрібно більше, пам'ять може бути взята з кеша, який раніше використовувався і наразі не є активним.
devav2

гаразд, згоден тоді :)
Нанна
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.