Значення буфери / кеш-рядки у виході вільних


168

Чому відображається мій сервер

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

Я не маю уявлення про обчислення пам'яті в Linux. Я думаю, це говорить про те, що 5088232 використовується там, де 7198224 є вільним, тобто він фактично споживає 5 Гб оперативної пам’яті?



Відповіді:


232

Значення значень

Перший рядок означає:

  • total: Ваша загальна (фізична) ОЗУ (виключаючи невеликий біт, який ядро ​​назавжди резервує для себе при запуску); тому це показує приблизно. 11,7 ГіБ, а не 12 ГБ, які ви, мабуть, маєте.
  • used: пам'ять, яку використовує ОС.
  • free: пам'ять не використовується.

total= used+free

  • shared/ buffers/ cached: Це показує використання пам'яті для конкретних цілей, ці значення включаються у значення для used.

Другий рядок дає коригувані значення першого рядка. Він дає початкове значення за used мінусом суми buffers+cachedта вихідне значення free плюс суму buffers+cached, звідси і його назву. Ці нові значення часто більш значущі, ніж значення першого рядка.

Останній рядок ( Swap:) містить інформацію про використання простору підкачки (тобто вміст пам'яті, який тимчасово переміщений на диск).

Фон

Щоб зрозуміти, що означають цифри, вам потрібно трохи ознайомитися з підсистемою віртуальної пам’яті (VM) в Linux. Просто коротка версія: Linux (як і більшість сучасних ОС) завжди намагатиметься використовувати безкоштовну оперативну пам’ять для кешування матеріалів, тому Mem: freeмайже завжди буде дуже низькою. Тому рядок -/+ buffers/cache:відображається, оскільки він показує, наскільки вільна пам'ять при ігноруванні кешів; кеші будуть звільнені автоматично, якщо пам'яті стає дефіцитною, тому вони насправді не мають значення.

Система Linux дуже мало пам’яті, якщо freeзначення в -/+ buffers/cache:рядку стає низьким.

Більш детально про значення цифр див., Наприклад, питання:

Зміни в заготівлі 3.3.10

Зауважимо, що вихід freeбуло змінено у складі 3.3.10 (випущено у 2014 році). Стовпці, про які повідомляється, тепер "загальний", "використаний", "вільний", "спільний доступ", "баф / кеш", "доступний" , і значення деяких значень змінилися, головним чином, для кращого врахування плити ядра Linux кеш.

Дивіться звіт про помилку Debian № 565518 про мотивацію та що означають зміни у freeвиході з 14.04 до 16.04? для отримання більш детальної інформації.


Не могли б ви розширити, які речі кешують Linux? Це були б файли, до яких можна отримати доступ, або мережеві речі?
CMCDragonkai

@CMCDragonkai: Відповідь на serverfault.com/questions/23433/… детально розглядає, що являє собою "кеш" та "буфер".
sleske

5
Я не думаю, що твердження "total = used + free" є правильним, дивіться такий результат на моїй машині:$ 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

3
total = used + free + buff/cache
небезпека89


2

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


А що означає перший рядок (мем. Рядок)
Muahmmad Zeeshan

8
У вас встановлено 12 Гб оперативної пам’яті, встановленої в системі, 11,5 ГБ якої використовується, а 0,5 Гб або близько, наразі не використовується. Приблизно 82 Мб використовуваної пам'яті використовується для буферів (мережевих з'єднань тощо), тоді як близько 6,5 ГБ використовується для зберігання копій даних на диску, так що дані не доведеться повторно читати, якщо вони знову потрібні.
живіт

3
@ Мухаммед: "82 МБ безкоштовно." - ні, 57MiB безкоштовний (але це насправді не має значення. Дивіться мою відповідь). "Тепер це все означає, що система досягла своїх меж" - Ні, зовсім не. Система використовує 6,9 Гбіт для кешування, який вона легко надасть додаткам, тому місця є багато. Крім того, використання свопів дуже низьке (приблизно 50 Мб). Якщо пам’ять почне затягуватися, використання підміни зросте. В даний час ви ледве використовуєте половину наявної оперативної пам’яті.
sleske

4
Чи думали ви задати нове запитання в якийсь момент?
живіт

3
Я не погоджуюся, буфер / кеш-рядок - це фактична вільна пам'ять системи, і тому найбільш актуальна, якщо ви хочете знати, чи є в системі місце для програм.
eckes
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.