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).