Cuándo actualizar la RAM según la salida libre

Cuándo actualizar la RAM según la salida libre

Tengo una aplicación Java que se ejecuta en un servidor Linux con memoria física (RAM) asignada como 12 GB, donde vería la utilización normal durante un período de tiempo como se muestra a continuación.

sys> free -h
              total        used        free      shared  buff/cache   available
Mem:            11G        7.8G        1.6G        9.0M        2.2G        3.5G
Swap:            0B          0B          0B

Recientemente, al aumentar la carga de la aplicación, pude ver que la utilización de la RAM está casi llena y el espacio disponible es muy menor, por lo que podría enfrentar cierta lentitud, pero aún así la aplicación continúa funcionando bien.

sys> free -h
              total        used        free      shared  buff/cache   available
Mem:            11G         11G        134M         17M        411M        240M
Swap:            0B          0B          0B
sys> free -h
              total        used        free      shared  buff/cache   available
Mem:            11G         11G        145M         25M        373M        204M
Swap:            0B          0B          0B

me referí ahttps://www.linuxatemyram.com/donde sugirió el siguiente punto.

Señales de advertenciade una situación genuina de poca memoria que quizás desees analizar:

  • la memoria disponible (o "libre + buffers/caché") es cercana a cero
  • El swap utilizado aumenta o fluctúa.
  • dmesg | grep oom-killer muestra el asesino OutOfMemory en funcionamiento

Según los puntos anteriores, no veo ningún problema de OOM a nivel de aplicación y el intercambio también se deshabilitó. descuidando así los dos puntos. Un punto que me preocupa es que la memoria disponible es inferior a cero y necesito una aclaración.

Preguntas:

  1. En caso de que disponible esté cerca de 0, ¿terminará en un fallo del sistema?
  2. ¿Significa que necesito actualizar la RAM cuando la memoria disponible es menor?
  3. ¿Sobre qué base se debe asignar/aumentar la memoria RAM?
  4. ¿Tenemos alguna recomendación/pauta oficial que deba seguirse para la asignación de memoria RAM?

Respuesta1

Capaz de obtener una respuesta para una de mis preguntas.

En caso de que disponible esté cerca de 0, ¿terminará en un fallo del sistema?

Al realizar pruebas en uno de mis servidores, donde cargué la memoria casi llena como se muestra a continuación

sys> free -h
              total        used        free      shared  buff/cache   available
Mem:            11G         11G        135M         25M        187M         45M
Swap:            0B          0B          0B

Pude ver que mi aplicación sola (que consumía más memoria) fue eliminada por el asesino de falta de memoria al que se puede hacer referencia en los registros del kernel.

dmesg -e

[355623.918401] [21805] 553000 21805 69 21 2 0 0 rm
[355623.921381] Out of memory: Kill process 11465 (java) score 205 or sacrifice child
[355623.925379] Killed process 11465 (java), UID 553000, total-vm:6372028kB, anon-rss:2485580kB, file-rss:0kB, shmem-rss:0kB

https://www.kernel.org/doc/gorman/html/understand/understand016.html

Out Of Memory Killer o OOM Killer es un proceso que emplea el kernel de Linux cuando el sistema tiene poca memoria. Esta situación ocurre porque el kernel de Linux ha asignado demasiada memoria a sus procesos. ... Esto significa que los procesos en ejecución requieren más memoria de la que está físicamente disponible.

información relacionada