Uso de memoria: gran diferencia en `free -m` y htop, así como el cálculo de la memoria utilizada en htop en comparación con /proc/meminfo

Uso de memoria: gran diferencia en `free -m` y htop, así como el cálculo de la memoria utilizada en htop en comparación con /proc/meminfo

Soy consciente de esta preguntahttps://stackoverflow.com/questions/41224738/how-to-calculate-system-memory-usage-from-proc-meminfo-like-htop La respuesta parece desactualizada con respecto al uso de la memoria y esta pregunta parece más compleja.

htop definitivamente ahora no calcula la memoria total mediante MemTotal - MemFree . Alláhttps://access.redhat.com/solutions/406773Encontré una solución que podría encajar. Según esto, se calcularía mediante, MemTotal - MemFree - Buffers - Cached - Slabpero eso conduce a un uso de memoria demasiado bajo en comparación con htop.

El uso de memoria en htop parece estar bastante relacionado como free -mse muestra en el celularMem: used

Pero si creas un disco ram, la cosa cambia mucho:

mkdir mnt
sudo mount -t tmpfs none mnt
cd mnt 
sudo dd if=/dev/urandom of=test bs=32M status=progress

Arriba se creará un disco RAM con un tamaño del 50 % de la memoria instalada y se llenará este disco RAM.

htop muestra ahora un poco más de la mitad de la RAM física utilizada, en el caso de prueba se utilizaron 3,82 GB de 7,44 GB. Sin embargo, free -mmuestra que todavía se utilizan sólo 104 MB en comparación con los 102 MB antes de crear y llenar el disco RAM. Por lo tanto, utilizar 104 MB es definitivamente incorrecto, porque la mitad de la memoria física del sistema ya no puede estar disponible ya que es utilizada por el disco RAM.

El /proc/meminfotamaño del disco RAM parece estar incluido Cached, por lo que para calcular la memoria caché utilizada no se debe restar.

Entonces, ¿por qué free -m informa un valor de memoria libre tan incorrecto? De forma predeterminada, hay varios tmpfs en distribuciones como Debian o Ubuntu, lo que significa que free -m da una impresión errónea de memoria libre.

El cálculo de la memoria de htop parece bastante razonable. Entonces, ¿cómo se puede calcular el valor htop /proc/meminfo?

información relacionada