Estoy tratando de recuperar la memoria utilizada (RAM) en porcentaje usando comandos de Linux. Mi cpanel muestra la memoria utilizada que necesito mostrar en una página web en particular.
En los foros, descubrí que se puede encontrar la memoria correcta de lo siguiente:
free -m
Resultado:
-/+ buffers/cache: 492 1555
- / + buffers / cache: contiene el uso correcto de la memoria. No sé cómo analizar esta información o si hay algún comando diferente para obtener la memoria utilizada en porcentaje.
free | grep Mem | awk '{print $4/$2 * 100.0}'
$ free | awk '/Mem/{printf("used: %.2f%"), $3/$2*100} /buffers\/cache/{printf(", buffers: %.2f%"), $4/($3+$4)*100} /Swap/{printf(", swap: %.2f%"), $3/$2*100}'
Respuestas:
Aquí está la salida de muestra de forma gratuita:
La primera línea de números (
Mem:
) enumeratotal
memoriaused
memoriafree
memoriashared
buffers
cached
)En esta línea
used
incluye los búferes y el caché y esto impacta gratis. Esta no es su memoria libre "verdadera" porque el sistema volcará el caché si es necesario para satisfacer las solicitudes de asignación.La siguiente línea (
-/+ buffers/cache:
) nos da la memoria libre y usada real como si no hubiera buffers o caché.La línea final (
Swap
) proporciona el uso de la memoria de intercambio. No hay memoria intermedia o caché para el intercambio, ya que no tendría sentido colocar estas cosas en un disco físico.Para generar la memoria usada (menos buffers y caché) puede usar un comando como:
Esto toma la tercera línea y divide el uso / total * 100.
Y para memoria libre:
fuente
free
,-/+ buffers/cache
se omite completamente intencionalmente, y el valor que se muestra en laused
columna ahora excluye los búferes y la memoria caché de forma predeterminada. Ver aquí: bugzilla.redhat.com/show_bug.cgi?id=1158828Voy a mencionar cómo analizar la información en el
free
comando. Para encontrar el porcentaje, puede usar como se sugiere en las otras 2 respuestas.Esto se explica claramente aquí . Trataría de explicar lo que tengo en mi sistema.
Ahora, veamos qué representan realmente los diversos números.
Línea 1
Línea 2
¿Cómo calcular los valores 696 y 7173 obtenidos en Line2?
Total utilizado ( 4402 ) - RAM total del búfer ( 208 ) - La RAM total para el almacenamiento en caché ( 3497 ) debe constituir la RAM real utilizada en el sistema. Me devuelve 697, que es la salida RAM real utilizada en la segunda línea.
Ahora, Total disponible ( 7869 ) - Real utilizado ( 696 ) debería darle la memoria libre que es 7173 en este caso, que también se obtiene como salida en la segunda línea.
fuente
Aunque es un duplicado según lo señalado por @szboardstretcher, mi preferencia de las soluciones (en la pregunta original) es la siguiente, especialmente porque desea analizar a una página web.
Salida:
fuente
used: 96.00%, buffers: 26.53%awk: (FILENAME=- FNR=4) fatal: division by zero attempted
$ cat /etc/issue CentOS release 6.7 (Final)
$ free | awk '/Mem/{printf("used: %.2f%"), $3/$2*100} /buffers\/cache/{printf(", buffers: %.2f%"), $4/($3+$4)*100} /Swap/{printf(", swap: %.2f%"), $3/$2*100}' used: 12.91%, buffers: 96.24%awk: (FILENAME=- FNR=4) fatal: division by zero attempted $ free total used free shared buffers cached Mem: 15429704 1991416 13438288 164 151556 1259584 -/+ buffers/cache: 580276 14849428 Swap: 0 0 0
Agrega una nueva línea después del número de intercambio
fuente
Para hasta CentOS 7 puede probar
para ver el uso real de la memoria por procesos.
fuente