TL; DR 1
Ваш сервер находится в каком-то контейнере virtuozzo / openvz / virtualization-du-jour . Попытка разобраться в использовании памяти - это наклон на ветряных мельницах.
TL; DR 2
Linux съел вашу оперативную память! Но это нормально, это делает это для всех.
Длинная история
Давайте разберемся с этим!
В Mem:
разделе мы имеем:
$n total
: объем физической оперативной памяти в вашей машине
$n used
: сколько памяти потребляется Linux, а не просто сумма процессов.
$n free
: Сколько оперативной памяти не используется Linux Это не учитывает, что кэшированная и буферизованная память по сути является «свободной».
$n buffers
: буферное пространство - это место, где хранятся блоки дискового ввода-вывода, прочитанные или ожидающие записи. Буфер - это представление ОЗУ одного блока диска.
В Swap:
разделе мы имеем:
$n total
: Само за себя. Объем дискового пространства, доступного для обмена страницами.
$n used
: Само за себя. Сколько дискового пространства используется.
$n free
: Herp Derp.
$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:
. Математика показывает, что использованное количество действительно (общее) - ((used-buffers) -эшируется). Бесплатно (всего) - (theNewUsed).
Что все это значит? Это означает, что Linux съел вашу оперативную память! Коротко говоря, ядро Linux поглощает ОЗУ, поскольку оно доступно для кэширования диска. Вы ничего не можете с этим поделать, если не хотите пытаться скомпилировать собственное ядро. Совет: не надо.
Оперативная память действительно там и свободна для процессов для использования по своему усмотрению. Вот что подразумевается под -/+ buffers/cache:
строкой free -m
. Однако вы находитесь в контейнере виртуализации без гипервизора, что немного усложняет ситуацию. Вы просто не можете подвести итоги вашей памяти с байтовой точностью на данный момент. Тем не менее, вы не видите ничего необычного.
Сохраняйте спокойствие и продолжайте. Кроме того, получите физический сервер (если вам не нравится статистика памяти, которая выглядит так, как будто Kreskin - это ваш SysAdmin).