COSES INTERESSANTS

/proc/meminfo

«free», «buffer», «swap», «dirty». ¿Qué significan? Si hascontestado «un campamento hippy», necesitas un cursillo sobre meminfo.

El contenido de /proc/meminfo ayuda a explicar qué se cuece con el uso de tu memoria, si sabes cómo leerlo.

  $ cat /proc/meminfo
root: total: used: free: shared: buffers: cached:
Mem: 1055760384 1041887232 13873152 0 100417536 711233536
Swap: 1077501952 8540160 1068961792

MemTotal: 1031016 kB
MemFree: 13548 kB
MemShared: 0 kB
Buffers: 98064 kB
Cached: 692320 kB
SwapCached: 2244 kB
Active: 563112 kB
Inact_dirty: 309584 kB
Inact_clean: 79508 kB
Inact_target: 190440 kB
HighTotal: 130992 kB
HighFree: 1876 kB
LowTotal: 900024 kB
LowFree: 11672 kB
SwapTotal: 1052248 kB
SwapFree: 1043908 kB
Committed_AS: 332340 kB

Se aporta la información tanto a alto nivel como en forma deestadísticas de bajo nivel. En la parte superior ves un resumen rápidode los valores más comunes a los que deberías prestar atención. Debajoestán los valores individuales que vamos a explicar. Vayamos primerocon las estadísticas a alto nivel.

Estadísticas a alto nivel

  • MemTotal: La RAM total utilizable, es decir, la RAM física menos cierto espacio reservado y el tamaño del binario del kernel
  • MemFree: La suma de LowFree y HighFree
  • MemShared: Siempre 0 por motivos de compatibilidad
  • Buffers: La memoria del buffer cache, hoy en día un dato poco útil
  • Cached: La memoria en el caché de disco menos SwapCache
  • SwapCache: La memoria que, una vez enviada al swap fue recuperada pero permanece en el fichero temporal, de forma que si es necesario volver a enviarla al swap ya está allí, ahorrandose E/S

Estadísticas detalladas

Estadísticas VM —máquina virtual—

La VM divide las páginas de caché en memoria activa e inactiva. Laidea es que si necesitas memoria y hay que sacrificar caché paraobtenerla, la tomas de la región inactiva, dado que es aquella cuyocontenido no se espera que sea necesario. La VM comprueba continuamentelo que se está utilizando y mueve de un lado para otro.

Cuando usas memoria, la CPU activa un big en la tabla de páginas. La VM comprueba ese bitocasionalmente y basándose en ello devuelve páginas a la región activa.Hay una especie de orden «hace mucho que no se usa» —en realidad porsupuesto es más complejo—. Las marcadas así pueden ser movidas a laregión inactiva. Dicha región se divide en dos en el kernel utilizado. A veces en tres.

  • Active: Memoria que ha sido utilizada recientemente y que no va a ser reclamada a no ser que sea absolutamente necesario
  • Inact_dirty: Sucio significa «podría necesitar pasar a swapen disco— Es más difícil de liberar. Por ejemplo, ficheros que aún nohan sido volcados a disco. No se escriben en memoria demasiado prontopara ahorrar E/S. De nuevo un ejemplo, los ficheros de log no deben ser volcados a disco demasiado pronto, hasta que se tenga la traza completa.
  • Inact_clean: Se asume que es fácilmente liberable, el kernel deja por aquí material limpio para asegurarse algo de espacio
  • Inact_target: Una medida que utiliza el kernel para asegurarse de que hay las suficientes páginas inactivas disponibles. Al pasarse, el kernelno va a hacer trabajo alguno para mover páginas de activas a inactivas.Hay otras formas en las que una página llega a ser inactiva. Porejemplo, si practicas una E/S secuencial larga el kernelpresume que no vas a usar esa memoria y la marca como inactivapreventivamente. De esta forma siempre hay más páginas inactivas de lasnecesarias dado que el kernel las marca como «probablemente nose usarán nunca—. Es una forma de hacer trampa en el mecanismoexplicado de las «últimas utilizadas».

Estadísticas de memoria

  • HighTotal: La cantidad total de memoria en la región alta. Es toda la memoria sobre aprox. 860 MB de RAM física. El kernel utiliza trucos indirectos para acceder a esta región de memoria. Es donde se almacena la caché de datos.
  • LowTotal: La cantidad total de memoria fuera de la región alta
  • LowFree: La cantidad de memoria libre fuera de la región alta. Se trata de la memoria a la que el kernelpuede acceder directamente. Todas sus estructuras de datos van aquí,fuera de la región alta.The amount of free memory of the low memoryregion. This is the memory the kernel can address directly. All kerneldatastructures need to go into low memory.
  • SwapTotal: Cantidad total de memoria física en la región de swap.
  • SwapFree: Candidad de memoria libre en la región de swap.
  • Committed_AS: Una estimación de cuánta RAM necesitarías paratener la garantía al 99,9% de que nunca te quedarás sin memoria para lacarga de trabajo actual. Normalmente el kernel comprometerámemoria de más. Esto significa que si haces p.ej. un malloc de 1 GB, noocurre en realidad nada. Sólo cuando empiezas a usar esa memoria sedemandará para ti memoria real, y tanta como uses. Es como contrataruna hipoteca y esperar que el banco no quiebre. Otros ejemplos sonhacer mmap con un fichero compartido sólo cuando escribes en el yobtienes así una copia privada de los datos. Es memoria normalmentecompartida entre procesos. La cifra Committed_AS es una estimación decuanta RAM y swap necesitas en el peor de los casos.
Visto en redhat.com

Comentarios

No hay ningún comentario

Añadir un Comentario: