uso de memoria real

15

si entiendo correctamente, en la siguiente salida producida por free, 3535m es la memoria libre real disponible para las aplicaciones, solo se usan 413m, ¿es esto correcto? necesita alguna aclaración sobre la diferencia entre Mem y - / + buffers / cache row.

libre -m
             total de buffers compartidos gratuitos usados ​​en caché
Mem: 3949 3854 95 0 9 3431
- / + buffers / cache: 413 3535
Intercambio: 2047 1322725

fuente

Respuestas:

16

La Mem: totalcifra es la cantidad total de RAM que pueden usar las aplicaciones. Esta es la RAM total instalada en el sistema, menos:

  • memoria reservada por dispositivos de hardware (a menudo memoria de video si la tarjeta gráfica no tiene su propia RAM);
  • memoria utilizada por el núcleo mismo.

Ese total incluye:

  • free: memoria que se usa actualmente para cualquier propósito;
  • shared: un concepto que ya no existe. Se deja en la salida para compatibilidad con versiones anteriores (hay scripts que analizan la salida desde free). (En los sistemas actuales, normalmente verá valores distintos de cero porque sharedse ha reutilizado para mostrar la memoria que se comparte explícitamente a través de un mecanismo de memoria compartida . En los sistemas más antiguos, incluía archivos asignados por más de un proceso y memoria que se podía compartir después fork()).
  • buffers: memoria respaldada por archivos y que puede escribirse en el disco si es necesario;
  • cache: memoria respaldada por archivos y que puede recuperarse en cualquier momento (la diferencia bufferses que las memorias intermedias deben guardarse en el disco antes de reutilizarse, mientras que la memoria caché consta de elementos que pueden recargarse desde el disco);
  • used -buffers/cache: memoria utilizada por las aplicaciones (y no paginada para intercambiar).

En un apuro, el sistema podría ejecutarse sin buffers y caché, reservando RAM para aplicaciones y realizando sistemáticamente lecturas y escrituras de disco sin ningún almacenamiento en caché. Las -/+ buffers/cachecifras indican la cantidad de RAM utilizada directamente por las aplicaciones ( usedcolumna) y la cantidad de RAM no utilizada por las aplicaciones ( freecolumna).

Aunque esto puede variar mucho, un sistema saludable generalmente tiene alrededor de la mitad de su RAM dedicada a las aplicaciones y la otra mitad a las memorias intermedias y al caché. A menos que esté ejecutando un servidor de archivos dedicado, su sistema tiene más RAM de la que necesita para lo que está haciendo actualmente. Si la free - buffers/cachecifra fuera baja, eso indicaría un sistema que no tiene suficiente RAM (al contrario de lo que se cree, tener una gran cantidad de memoria dedicada a buffers y caché es importante para el rendimiento del sistema, y ​​tratar de reservar más memoria para las aplicaciones sería hacer que el 99.99% de los sistemas sea más lento).

La swaplínea es sencilla, muestra la cantidad de intercambio que está en uso (ya sea por aplicaciones o para tmpfsalmacenamiento) y la cantidad que no.

Gilles 'SO- deja de ser malvado'
fuente
1
"compartido: un concepto que ya no existe". Parece que fue reintroducido en algún momento entre 2011 y 2016: unix.stackexchange.com/questions/307015/…
Marisha
3

Sí tienes razón. El sistema operativo utiliza las memorias intermedias y la memoria caché, pero están disponibles para las aplicaciones inmediatamente. El sistema operativo está dispuesto a invalidar y desechar parte de la memoria caché para satisfacer la próxima solicitud de memoria.

norte. 'pronombres' m.
fuente