free
es un comando popular utilizado por administradores de sistemas en plataformas Unix/Linux. Es una poderosa herramienta que brinda información sobre el uso de la memoria en formato legible por humanos.
El man
la página para este comando indica que free
muestra la cantidad total de memoria libre y utilizada en el sistema, incluido el espacio físico y de intercambio, así como los búferes y cachés utilizados por el kernel. La información se recopila analizando /proc/meminfo
.
Como cualquier otro comando, free
ha pasado por revisiones a lo largo del tiempo para que sus resultados sean significativos y precisos para la toma de decisiones. En Red Hat Enterprise Linux (RHEL) 6, el resultado es algo diferente al de RHEL 7 y 8. Sin embargo, en todas estas versiones, hay parámetros clave que no cambian.
En RHEL 6, escriba free -h
(Usé el -h
opción para formato legible por humanos) muestra un resultado similar al siguiente:
[root@srv ~]# free -h
total used free shared buffers cached
Mem: 94G 44G 49G 161M 993M 1.3G
-/+ buffers/cache: 42G 52G
Swap: 15G 0B 15G
(figura 1)
RHEL 7/8 muestra información similar a la siguiente:
[root@server1 ~]# free -h
total used free shared buff/cache available
Mem: 15G 751M 1.2G 272M 13G 14G
Swap: 0B 0B 0B
(figura 2)
RHEL 8 tendrá una salida similar a la siguiente:
[root@tiger ~]# free -h
total used free shared buff/cache available
Mem: 819Mi 164Mi 146Mi 25Mi 509Mi 491Mi
Swap: 0B 0B 0B
(Figure 3)
Para hacer que el resultado anterior sea más legible, el comando ofrece varias opciones:free
-b
, -k
, -m
, -g
:muestra la cantidad de memoria en bytes, kilobytes, megabytes, free -h
para mostrar la salida en una salida legible por humanos. Ejecute free --help
para obtener más información sobre las opciones.
Las diversas columnas, mostradas por las distintas versiones anteriores, buscan identificar la memoria total, usada, libre y compartida. También busca mostrar la memoria contenida en caché y búferes.
Sin embargo, como con la mayoría de los comandos, las columnas relevantes para verificar cuál puede ser de interés para el administrador del sistema al realizar tareas de mantenimiento o solucionar problemas problema se explican a continuación.
Red Hat Enterprise Linux 6
En el caso de RHEL 6, el enfoque debe estar en los -/+ búfer/caché columna.
En la figura 1 anterior, el total es de 94 GB, el usado es de 44 GB y el libre es de 49 GB. Este sistema está bastante ocupado, pero la memoria RAM utilizada parece alta. Esto no debería causar mucha preocupación, pero el administrador debe mirar los -/+ búferes/caché columna. Los -/+ búfer/caché muestra la memoria utilizada como 42 GB y la memoria libre como 52 GB. Esto significa que la cantidad real de RAM utilizada es de 42 GB y no de 44 GB. El valor de 44 GB también incluye la memoria caché. Un simple vistazo a los usados valor sin considerar el caché afecta su interpretación del rendimiento del sistema.
Los búferes y las columnas en caché se explican a continuación:
- búferes:memoria utilizada por los búferes del kernel
- cached:espacio de memoria ocupado por "Page Cache".
Las páginas de caché no son más que los datos/archivos que se copian en la RAM cuando el kernel realiza operaciones de lectura/escritura en un disco. La razón para mantener estas páginas en caché es el rendimiento de E/S. Por lo tanto, el kernel mantiene estos archivos en la RAM y los libera cuando no se necesitan o cuando un nuevo proceso/comando solicita un espacio de memoria cuando no hay espacio libre disponible en la RAM.
Red Hat Enterprise Linux 7/8
En RHEL 7/8, el enfoque debe estar en el disponible columna. En RHEL 7/8, -/+ búfer/caché fue retirado y reemplazado por el disponible columna. El búfer y caché se combinaron en buff/cache y tienen el mismo significado que el explicado anteriormente. Los disponibles columna estima cuánta memoria está disponible para iniciar nuevas aplicaciones sin necesidad de intercambiar.
En la figura 2 anterior, la RAM total instalada es de 15 GB, la utilizada es de 751 MB y la libre es de 1,2 GB. Usando el mismo razonamiento que hicimos con RHEL 6, una simple mirada a los usados valor podría llevar a una conclusión equivocada. Los usados La columna debe entenderse teniendo en cuenta también la columna de caché. Hay mucho almacenamiento en caché con el disponible valor de 14 GB, que es muy alto, casi igual a la memoria RAM total.
¿Cuándo debería empezar a preocuparse el administrador del sistema?
Un sistema en buen estado con memoria más que suficiente, después de ejecutarse durante un tiempo, mostrará el siguiente comportamiento esperado e inofensivo:
- la memoria libre es cercana a 0 o significativamente pequeña
- la memoria utilizada está cerca del total
- la memoria disponible (o libre -/+ búfer/caché) es mayor en relación con la memoria total
- el valor usado de intercambio no cambia
Sin embargo, el administrador del sistema debe preocuparse cuando hay señales que constituyen una situación genuina de poca memoria. A continuación se muestran algunos de esos signos:
- la memoria disponible (o libre -/+ búfer/caché) está cerca de cero o es significativamente pequeña
- los valores usados de intercambio comienzan a aumentar o fluctuar ya que no hay páginas de memoria libres para que las use el sistema, por lo que debe recurrir al uso del disco de intercambio
- Hay mensajes asesinos de OutOfMemory en los registros cuando se comprueban con
grep -i kill /var/log/messages*
odmesg | grep oom-killer
Terminando
El free
El comando es una utilidad muy útil que puede decirle al administrador del sistema mucho sobre lo que está sucediendo en el servidor. Aprendiendo a reconocer las diferencias entre las versiones de free
puede ayudar con una interpretación más precisa de la salida.
[ ¿Quiere probar Red Hat Enterprise Linux? Descárgalo ahora gratis. ]