Solución 1:
Significado de los valores
La primera línea significa:
total
:Su RAM (física) total (excluyendo una pequeña parte que el núcleo se reserva permanentemente al inicio); por eso muestra ca. 11,7 GiB y no 12 GiB, que probablemente tengas.used
:memoria en uso por el sistema operativo.free
:memoria no en uso.
total
=used
+ free
shared
/buffers
/cached
:Esto muestra el uso de la memoria para fines específicos, estos valores se incluyen en el valor deused
.
La segunda línea da los valores de la primera línea ajustados. Da el valor original para used
menos la suma buffers+cached
y el valor original para free
más la suma buffers+cached
, de ahí su título. Estos nuevos valores suelen ser más significativos que los de la primera línea.
La última línea (Swap:
) proporciona información sobre el uso del espacio de intercambio (es decir, el contenido de la memoria que se ha movido temporalmente al disco).
Antecedentes
Para comprender realmente lo que significan los números, necesita un poco de información sobre el subsistema de memoria virtual (VM) en Linux. Solo una versión corta:Linux (como la mayoría de los sistemas operativos modernos) siempre intentará usar RAM libre para almacenar cosas en caché, por lo que Mem: free
casi siempre será muy bajo. Por lo tanto, la línea -/+ buffers/cache:
se muestra porque muestra la cantidad de memoria libre cuando se ignoran los cachés; los cachés se liberarán automáticamente si la memoria escasea, por lo que realmente no importan.
Un sistema Linux tiene muy poca memoria si el free
valor en -/+ buffers/cache:
la línea se vuelve baja.
Para obtener más detalles sobre el significado de los números, consulte, p. las preguntas:
- En Linux, ¿cuál es la diferencia entre "búferes" y "caché" informados por el comando libre?
- ¿Por qué Red Hat Linux informa menos memoria libre en el sistema de la que realmente está disponible?
Cambios en procps 3.3.10
Tenga en cuenta que la salida de free
se cambió en procps 3.3.10 (lanzado en 2014). Las columnas informadas ahora son "total", "usado", "gratis", "compartido", "mejorado/caché", "disponible" , y los significados de algunos de los valores cambiaron, principalmente para explicar mejor el caché de losa del kernel de Linux.
Consulte el informe de errores de Debian n.º 565518 para conocer la motivación y ¿Qué cambios tienen en free
? salida de 14.04 a 16.04 media? para obtener más información detallada.
Solución 2:
La respuesta actualmente aceptada de 2009 está desactualizada. Es importante asegurarse de que la información que obtiene sea correcta y coincida con la versión de free
(distribuido en el paquete Debian procps
o equivalente en su distribución). También es útil mirar la salida de man free
, y también man 5 proc
, que contiene información sobre /proc/meminfo
, el archivo donde free
obtiene sus datos de Linux.
Por defecto, free
La salida está en kibibytes (1 kibibyte =1024 bytes), como puede ver en la página del manual. Prefiero usar el -h
argumento, que muestra sufijos, como este:
$ free -h
total used free shared buff/cache available
Mem: 15Gi 6.1Gi 1.9Gi 301Mi 7.5Gi 8.8Gi
Swap: 979Mi 0B 979Mi
La primera línea Mem
significa:
total
(Mem):memoria total instalada (es decir,MemTotal
de/proc/meminfo
), esta toda la memoria en RAMused
(Mem):memoria usada, igual atotal - free - buffers - cache
free
(Mem):memoria no utilizada (es decir,MemFree
), esta es toda la memoria que no se usa para nada (incluso cachés) en RAMshared
(Mem):esta es la cantidad de memoria utilizada principalmente paratmpfs
(Shmem
)buff/cache
(Mem), suma debuffers
ycache
:<último>buffers
:memoria utilizada por los búferes del kernel (Buffers
), que es memoria que el kernel puede aprovecharcache
:memoria utilizada por la caché de página y losas (Cached
ySReclaimable
). La memoria caché de la página contiene el contenido de los archivos del sistema de archivos almacenados en memoria RAM y, por lo general, es bueno que sea un número elevado. Supongo que las "losas" son una función de almacenamiento en caché similar.
available
(Mem):esta es una estimación de la cantidad de memoria disponible para iniciar nuevas aplicaciones, sin intercambio. Incluye la mayor parte de la memoria contada en el cache
(ya que la memoria caché de la página se puede eliminar para iniciar nuevas aplicaciones), pero no cuenta el intercambio (ya que generalmente es preferible no usar el espacio de intercambio lento).
La segunda línea es Swap
. Esta es mi explicación:
total
(Swap):esta es la cantidad total de espacio en disco reservado para swap (SwapTotal
enproc/meminfo
). Puede verificar verificando que esto coincida con la salida deswapon -s
.used
(Intercambio):la cantidad de espacio de disco de intercambio que se está utilizando actualmente. Nuevamente, puede verificar esto comparándolo con la salida deswapon -s
free
(Intercambio):la cantidad de espacio de disco de intercambio que actualmente no se está utilizando (SwapFree
en/proc/meminfo
). Es igual atotal (Swap) - used (Swap)