TL; DR 1
Su servidor está dentro de algún tipo de contenedor virtuozzo / openvz / virtualization-du-jour . Intentar dar sentido al uso de la memoria se inclina en los molinos de viento.
TL; DR 2
¡Linux se comió tu RAM! Pero está bien, se lo hace a todos.
La larga historia
¡Vamos a desglosarlo!
En la Mem:
sección tenemos:
$n total
: la cantidad de RAM física en su máquina
$n used
: cuánta memoria está consumiendo Linux, no solo la suma de los procesos.
$n free
: Cuánta RAM no está siendo consumida por Linux. Esto no tiene en cuenta que la memoria almacenada en caché y en búfer es esencialmente "gratuita".
$n buffers
: el espacio de almacenamiento intermedio es donde se almacenan los bloques de E / S de disco que se han leído o están pendientes de escritura. Un búfer es una representación RAM de un solo bloque de disco.
En la Swap:
sección tenemos:
$n total
: Autoexplicativo. Cantidad de espacio en disco disponible para intercambiar páginas.
$n used
: Autoexplicativo. Cuánto espacio de intercambio de disco se usa.
$n free
: Herp Derp.
$n cache
: Estrechamente relacionado con los búferes anteriores. En realidad, es parte del caché de la página y no tiene espacio en el disco físico. No te preocupes por los detalles de esta conversación.
La parte interesante viene cuando corres free -m
. Verás tres líneas, y todos los números se correlacionarán con la parte superior. Daré mi propia PC como ejemplo:
total used free shared buffers cached
Mem: 8070 7747 323 0 253 5713
-/+ buffers/cache: 1780 6290
Swap: 5055 0 5055
La fila Mem muestra RAM total en megabytes ( $n total
en la parte superior), cuánto se usa ( $n used
en la parte superior), cuánto es libre ( $n free
en la parte superior), cuánto se comparte (ignore eso), ¡y ahora viene lo bueno! Las columnas buffers
y cached
en free -m
correlacionan, previsiblemente, $n buffers
y $n cache
. Pero eche un vistazo a la segunda fila con la free -m
que comienza -/+ buffers/cache:
. La matemática muestra que la cantidad utilizada es realmente (total) - ((used-buffers) -cached). Gratis es (total) - (theNewUsed).
¿Qué significa todo esto? ¡Significa que Linux se comió tu RAM! La historia corta es que el kernel de Linux engulle RAM ya que está disponible para usar para el almacenamiento en caché de disco. No puede hacer nada al respecto, a menos que tenga ganas de intentar compilar un núcleo personalizado. Consejo profesional: no lo hagas.
La RAM está realmente allí y libre para que los procesos la utilicen a su antojo. Eso es lo que significa la -/+ buffers/cache:
fila de adentro free -m
. Sin embargo, está dentro del contenedor de virtualización sin hipervisor que hace que las cosas sean un poco ardientes. Simplemente no puede hacer un balance de su memoria con precisión de byte en este momento. Sin embargo, no está viendo ningún comportamiento que sea terriblemente inusual.
Mantenga la calma y continúe. Además, obtenga un servidor físico (a menos que desee estadísticas de memoria que parezcan que Kreskin es su SysAdmin).