GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo obtener el% de uso de memoria con vmstat?

Lo que estás buscando es la salida de "gratis":

$ free
             total       used       free     shared    buffers     cached
Mem:        775556     759456      16100          0      22132     592484
-/+ buffers/cache:     144840     630716
Swap:       500344      21972     478372

Aquí hay un recorrido:

Esta es una caja con 768 MB de RAM física y una partición de intercambio de 500344 KB.

759456KB está "usado" (segunda columna, fila superior). De esta memoria "usada", 23132 KB son búferes (5.ª columna, fila superior) y 592.484 KB (sexta columna, fila superior) son caché, lo que deja 144.840 KB (2.ª columna, 2.ª fila) de memoria física que utilizan los procesos activos.

Si considera que la memoria utilizada por los búferes y la memoria caché podría utilizarse para los procesos, eso deja 630716 KB (tercera columna, segunda fila) de memoria física libre.

La partición de intercambio, como dije, es 500344KB (primera columna, fila inferior). 21972 KB (segunda columna, fila inferior) del archivo de intercambio están en uso, lo que deja 478 372 KB (tercera columna, fila inferior) libres.

Por lo tanto, su definición de % de memoria libre depende de si está contando los búferes y el caché o no, y si está contando el intercambio o no.

Eso debería darte suficiente para calcular un porcentaje como mejor te parezca.

Aquí está el resultado de top y free:

$ top -n1 | grep "used," ; free
Mem:    775556k total,   751472k used,    24084k free,    20776k buffers
Swap:   500344k total,    21972k used,   478372k free,   586648k cached

             total       used       free     shared    buffers     cached
Mem:        775556     751344      24212          0      20776     586648
-/+ buffers/cache:     143920     631636
Swap:       500344      21972     478372

Puede ver cómo están de acuerdo top y free (aunque con una pequeña diferencia:esta es una máquina multiusuario y el uso de memoria de los programas top y free se refleja allí).

Agregue una "-s" cuando llame a vmstate y verá el mismo resultado, solo que en una forma diferente:

$ vmstat -s ; free
       775556  total memory
       759920  used memory
       674680  active memory
        18440  inactive memory
        15636  free memory
        21892  buffer memory
       594372  swap cache
       500344  total swap
        21972  used swap
       478372  free swap
       ... output truncated ...

             total       used       free     shared    buffers     cached
Mem:        775556     759920      15636          0      21892     594372
-/+ buffers/cache:     143656     631900
Swap:       500344      21972     478372

Puede ver que vmstat muestra todos los mismos números que gratis.


Tengo la misma pregunta contigo y se me ocurrió una fórmula

vmstat -s | awk  ' $0 ~ /total memory/ {total=$1 } $0 ~/free memory/ {free=$1} $0 ~/buffer memory/ {buffer=$1} $0 ~/cache/ {cache=$1} END{print (total-free-buffer-cache)/total*100}'

Lo probé en la versión vmstat de procps-ng 3.3.10 y vmstat de procps-ng 3.3.9


Linux
  1. Cómo obtener estadísticas del sistema con node.js

  2. Cómo obtener el uso de la CPU

  3. Cómo encontrar el uso de la memoria del usuario en Linux

  4. ¿Cómo limitar el uso de la memoria de la aplicación?

  5. ¿Cómo reducir el uso de memoria de ClamAV?

Comando libre de Linux (Comprobar el uso de la memoria)

Cómo visualizar el uso del espacio en disco con Vizex en Linux

Cómo verificar el uso de memoria en Debian 10

¿Cómo interpretar el uso de memoria superior/htop?

Cómo comenzar con Arch Linux

¿Cómo perfilar el uso de la memoria?