GNU/Linux >> Tutoriales Linux >  >> Linux

Diseccionando el comando libre:lo que el administrador de sistemas de Linux necesita saber

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,  gigas respectivamente. También puedes usar 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* o dmesg | 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. ]


Linux
  1. ¿Qué es el equivalente del comando 'gratis' de Linux en FreeBSD v8.1?

  2. ¿Qué significa &al final de un comando de Linux?

  3. ¿Cuál es el análogo de Windows del comando watch de Linux?

  4. ¿Cuál es el equivalente al comando de archivo de Linux para Windows?

  5. ¿Qué significa el símbolo de la tubería de Linux? ¿hacer?

Comando libre en Linux

25 comandos básicos de Linux que un principiante necesita saber

¿Qué es el Shell en Linux?

Herramientas de administrador de sistemas:11 formas de usar el comando ls en Linux

El comando del temporizador en Linux

¿Qué es el comando matar en Linux?