TL; DR 1
Ваш сервер перебуває в контейнері virtuozzo / openvz / virtualization-du-jour . Намагання осмислити використання пам’яті - це нахили на вітряках.
TL; DR 2
Linux з'їв вашу оперативну пам’ять! Але це нормально, це роблять всі.
Довга історія
Давайте розбимо його!
У Mem:
розділі ми маємо:
$n total
: кількість фізичної оперативної пам’яті у вашій машині
$n used
: скільки пам’яті споживає Linux, а не лише сума процесів.
$n free
: Скільки оперативної пам’яті Linux не споживає. Це не враховує, що кешована і забудована пам'ять по суті є "безкоштовною".
$n buffers
: буферний простір - це зберігання блоків дискових вводу-виводу, які були прочитані або очікують на запис. Буфер - це RAM-представлення одного блоку диска.
У Swap:
розділі ми маємо:
$n total
: Пояснення самостійно. Обсяг дискового простору, на який можна поміняти сторінки.
$n used
: Пояснення самостійно. Скільки місця для заміни диска.
$n free
: Герп Дерп.
$n cache
: Тісно пов'язані з буферами вище. Він фактично є частиною кеш-сторінки сторінки і сам не має місця на фізичному диску. Не хвилюйтесь щодо деталей цієї розмови.
Цікава частина приходить, коли ти біжиш free -m
. Ви побачите три рядки, і всі числа співвідносяться з вершиною. Я наведу власний ПК як приклад:
total used free shared buffers cached
Mem: 8070 7747 323 0 253 5713
-/+ buffers/cache: 1780 6290
Swap: 5055 0 5055
Рядок Mem показує загальну оперативну пам’ять у мегабайтах ( $n total
вгорі), скільки використовується ( $n used
вгорі), скільки вільного ( $n free
вгорі), скільки спільного доступу (ігноруйте це), і тепер приходить хороша частина! buffers
І cached
стовпці в free -m
корелюють, передбачувано, $n buffers
і $n cache
. Але погляньте на другий ряд, з free -m
якого починається -/+ buffers/cache:
. Математика показує, що використана кількість дійсно (загальна) - ((використані буфери) -кешована). Безкоштовно є (усього) - (TheNewUsed).
Що все це означає? Це означає, що Linux з’їв вашу оперативну пам’ять! Коротка історія полягає в тому, що ядро Linux збиває оперативну пам’ять, оскільки її можна використовувати для кешування диска. З цим нічого не можна зробити, якщо не захочеться скомпілювати користувацьке ядро. Порада: Не варто.
Оперативна пам’ять дійсно є і безкоштовна для процесів, які можна використовувати за їх примхою. Ось що означає -/+ buffers/cache:
рядок в free -m
. Однак, ви знаходитесь у контейнері для віртуалізації, який не містить гіпервізорів, що робить трішки хитрощів. Ви просто не можете підвести підсумок пам’яті з точністю байтів. Однак ви не бачите жодної поведінки, яка страшенно незвична.
Зберігай спокій і продовжуй. Крім того, придбайте фізичний сервер (якщо вам не подобається статистика пам'яті, схожа на Крескіна, це ваш SysAdmin).