27 votos

Cómo interpretar el resultado de Linux 'top' comando?

Después de una discusión AQUÍ sobre cómo PHP-FPM consumo de memoria, acabo de encontrar un problema en la lectura de la memoria en top comando. Aquí está una captura de pantalla de mi top sólo después de reiniciar PHP-FPM. Todo es normal: alrededor de un 20 PHP-FPM procesos, cada uno consume 5.5 MB de memoria (0,3% del total).

enter image description here

Aquí está el anciano servidor de derecho antes de que se reinicie PHP-FPM (un día después de que el anterior reiniciar). Aquí, todavía tenemos alrededor de 25 PHP-FPM con el doble uso de la memoria (10MB indicando el 0,5% del total). Así, el total de memoria utilizada debe ser de 600 a 700 MB. Entonces, ¿por qué 1.6 GB de memoria se ha utilizado?

enter image description here

33voto

Wesley Puntos 22784

TL;DR 1

Su servidor está dentro de algún tipo de parallels virtuozzo containers/openvz/virtualización-du-jour contenedor. Tratando de hacer sentido de uso de la memoria es la inclinación en los molinos de viento.

TL;DR 2

Linux se comió su RAM! Pero eso está bien, no a todo el mundo.


La Larga Historia

Vamos a romper!

En la Mem: sección tenemos:

  • $n total: la cantidad de RAM física en su máquina
  • $n used: la cantidad de memoria consumida por Linux, no es sólo la suma de los procesos.
  • $n free: Cuánta memoria RAM no está siendo consumido por Linux. Esto no toma en cuenta que en caché y en el búfer de la memoria es, en esencia, "libre".
  • $n buffers: espacio de separación es donde los bloques de e/S de disco de haber sido leer o a la espera de una escritura que se almacena. Un buffer es una memoria RAM representación de un solo bloque de disco.

En la Swap: sección tenemos:

  • $n total: Auto explicativo. Cantidad de espacio de disco disponible para intercambio de páginas.
  • $n used: Auto explicativo. Cuánto disco en el espacio de intercambio se utiliza.
  • $n free: Herp Derp.
  • $n cache: Estrechamente relacionados con los excedentes por encima. Realmente es una parte de la memoria caché de la página y de por sí no tiene espacio en disco físico. No se preocupe acerca de los detalles de esta conversación.

La parte interesante viene cuando ejecute free -m. Verás tres líneas, y todos los números se correlaciona con la parte superior. Yo voy a dar mi propia PC como un ejemplo:

             total       used       free     shared    buffers     cached
Mem:          8070       7747        323          0        253       5713
-/+ buffers/cache:       1780       6290
Swap:         5055          0       5055

El Mem fila muestra el total de memoria RAM en megabytes ($n total en la parte superior), la cantidad que se utiliza ($n useden la parte superior), ¿cuánto es libre ($n free en la parte superior), ¿cuánto es compartido (ignorar esto), y ahora viene la parte buena! El buffers y cached columnas free -m correlato, como era de esperar, $n buffers y $n cache. Pero echa un vistazo a la segunda fila de free -m que comienza con -/+ buffers/cache:. Los cálculos muestran que la cantidad es realmente (total)-((usado-buffers)-en caché). Gratis es (total)-(theNewUsed).

¿Qué significa todo esto? Esto significa que Linux se comió su RAM! La historia corta es que el kernel de Linux engulle la memoria RAM que está disponible para el uso de caché en disco. No hay nada que puedas hacer al respecto, a menos que usted se siente como tratando de compilar un kernel personalizado. Pro Tip: no.

La memoria RAM está realmente allí, y gratuito para los procesos de usar a su antojo. Eso es lo que significa el -/+ buffers/cache: fila free -m. Sin embargo, usted está dentro de no hyper-visor de virtualización de contenedor que hace las cosas un poco ardillas,. Usted simplemente no puede hacer un balance de su memoria con el byte de la precisión en este punto. Sin embargo, usted no está viendo cualquier comportamiento que es terriblemente extraño.

Mantener la Calma y seguir adelante. También, obtener un servidor físico (a menos que te gusten las estadísticas de memoria que se parecen a Kreskin es tu SysAdmin).

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: