¿Qué está usando mi memoria?

¿Qué está usando mi memoria?

Estoy tratando de descubrir qué está consumiendo la memoria de mi servidor Linux (ubuntu 20.04).

Un rato después de reiniciar, htop muestra esto:

arriba

Esto sugiere que actualmente se están utilizando 17 GB de memoria. Antes de reiniciar, mostraba 29,6 GB y la computadora parecía lenta. La ventana superior está ordenada por memoria y el proceso de mayor uso utiliza el 0,6% de la memoria.

Otra preguntasugirió usar este comando:

ps -e -orss=,args= | sort -b -k1,1n

El proceso de mayor uso reporta 209596 kilobytes (?) de memoria, por lo que nuevamente es una pequeña proporción de la RAM disponible.

Probé un comando bastante críptico para sumar todos los números en la primera columna reportada por ese pscomando:

ps -e -orss=,args= | sort -b -k1,1n | sed 's/^ \+//' | cut -d \  -f 1 | sed '2,$s/$/+/' | sed '$s/$/p/' | dc

Eso informa un uso total de 2965816 kilobytes (?), que (suponiendo que mi suposición de kilobytes sea correcta) es menos de 3 GB, entonces, ¿a dónde van los otros 14 GB?

¿Alguien puede ayudar con esto por favor?

Respuesta1

Sí, ¿eso me está causando un problema?

No está causando ningún problema. Este es el comportamiento esperado. ZFS originalmente no está hecho para Linux. Dispone de su propio sistema de almacenamiento en caché (llamado ARC, Adaptive Reemplazo Cache). En Linux, la memoria asignada a este caché se considera "en uso", aunque se liberará cuando aumente la presión de la memoria, al igual que el almacenamiento en caché normal del sistema de archivos. El tamaño máximo predeterminado de ARC es el 50% de la memoria física.

En las versiones modernas de htop(3+) puede activar una visualización de estado de ARC:

estado de htop 3 zfs

Esta captura de pantalla es de un sistema con 8 GiB de memoria.

Respuesta2

ZFS tiene un caché de disco basado en RAM que está separado del caché de disco normal de Linux. Esto tiene que ver con los orígenes no Linux de ZFS. Esta memoria caché ZFS se denomina caché de reemplazo adaptativa o ARC. Debido a esta separación, ZFS ARC aparece en Linux como memoria "usada", en lugar de "en caché", como se esperaría de los sistemas de archivos nativos, como EXT4. Esta es la razón por la que muchas personas nuevas en ZFS se preocupan por el uso de RAM, pero no hay nada de qué preocuparse. A menos que esté lidiando con la deduplicación (que probablemente no sea así y que probablemente no debería hacerlo), la memoria no es una preocupación tan grande para ZFS, al contrario de lo que mucha gente le dirá.

Está viendo que este caché de disco (y por lo tanto la memoria) se llena porque está moviendo (lo que significa leyendo) muchos datos. El límite de memoria predeterminado para ARC suele ser el 50% de su RAM, pero se puede configurar a través del parámetro del módulo del kernel zfs 'zfs_arc_max', en caso de que desee establecer un máximo. Si alguna vez la memoria libre escasea, ZFS liberará parte de su ARC, tal como lo haría el caché de disco normal de Linux. Nuevamente, no hay nada de qué preocuparse; La RAM no utilizada es RAM desperdiciada.

--HenkAchterpaard

información relacionada