Tutoriel Linux

Débutant5 min de lecture
À retenirLinux n'est pas réservé aux experts. Le bon point de départ : une distribution accessible, une sauvegarde propre et quelques commandes comprises.

libre -h en un servidor y la columna gratis La pantalla muestra casi cero. Sin embargo, las aplicaciones siguen respondiendo correctamente y no aparecen errores de memoria. Este resultado es común: Linux utiliza la RAM no utilizada como caché y luego la recupera cuando un proceso la necesita.

disponible, luego intercambio y actividad de memoria a lo largo del tiempo. Un único valor usado no es suficiente. Este es el método que utilizo antes de detener un servicio o añadir RAM.

Tux analiza los módulos RAM y una caché de memoria reutilizable en Linux.
En Linux, parte de la memoria caché puede volver a estar disponible para las aplicaciones.

Comience con `free -h` y la columna `available`.

El comando básico no requiere privilegios de administrador:

libre -h

la opción -h Selecciona automáticamente una unidad legible, por ejemplo MiB o GiB. En la línea memeComience con estas tres columnas:

  • total : la memoria utilizable conocida del núcleo;
  • disponible : la estimación de la memoria que un nuevo proceso puede obtener sin provocar intercambio de memoria;
  • gratis : páginas que no se utilizan en absoluto en este momento.

disponible es generalmente más útil que gratisEl kernel sabe cómo liberar parte de la caché y las estructuras recuperables. Una máquina con 300 MiB en gratis pero 4 GiB en disponible no se está quedando sin RAM.

las columnas de gratis usado se calcula a partir de total Y disponiblePor lo tanto, no es la suma exacta de la memoria RSS de todos los procesos.

  • compartido utiliza principalmente la memoria por tmpfs ;
  • amortiguadores cubre los búferes principales;
  • oculto incluye, en particular, la caché de archivos y las estructuras recuperables;
  • Agrupa los búferes y la caché en la pantalla estándar.

separarse amortiguadores Y ocultoUtilice la pantalla panorámica:

gratis -w -h

Esta perspectiva ayuda a comprender la asignación, pero no cambia el diagnóstico: la pregunta sigue siendo cuánta memoria se puede recuperar sin intercambio y, posteriormente, si este margen disminuye de forma permanente.

¿Por qué Linux llena la RAM con caché?

Releer un archivo desde la RAM es más económico que releerlo desde una unidad SSD o un disco duro. Por lo tanto, Linux almacena los datos usados ​​recientemente en la caché de páginas. Mientras ninguna aplicación solicite este espacio, dejarlo vacío no ofrece ninguna ventaja.

No borre la caché con drop_caches elevar artificialmente la columna vertebral gratisEstás borrando una caché útil y obligando al sistema a volver a leer los datos. Esta operación se utiliza principalmente para pruebas controladas, no para el mantenimiento rutinario del servidor.

Puedes confirmar la fuente de los valores en /proc/meminfo :

grep -E '^(MemTotal|MemFree|MemAvailable|Buffers|Cached|SReclaimable|SwapTotal|SwapFree):' /proc/meminfo

Memoria disponible Es una estimación generada por el núcleo. Tiene en cuenta la memoria libre y una parte de las cachés recuperables, sin asumir que toda la caché se pueda recuperar de inmediato.

Para comparar varias máquinas o para introducir una lectura, mantenga una unidad fija. -metro Muestra mebibytes. Para unidades decimales, agregue --si

libre -m
free-h --si

Además, evite sacar conclusiones a partir de una única captura aislada. Puede repetir la lectura cada dos segundos y detenerse después de cinco mediciones:

libre -h -s 2 -c 5

ver si disponible Se produce una caída continua si el intercambio de memoria avanza y la situación vuelve a la normalidad una vez finalizado el proceso. Una caída breve durante una copia de seguridad o compilación no es lo mismo que una caída continua durante varias horas.

Comparación de la RAM con el intercambio y el estado de la máquina virtual

la linea Intercambio de Indica su ocupación, pero no su actividad. Unos pocos gigabytes de datos usados ​​durante mucho tiempo no prueban que la máquina siga intercambiando páginas. Enumere las áreas activas y luego observe. si Y entonces con vmstat :

intercambio --mostrar
vmstat 1 5

En vmstat si O entonces disponible El bajo uso de memoria y las ralentizaciones indican una verdadera presión sobre la memoria.

la guía para intercambiar bajo Linux Explica cuándo es normal su uso y por qué borrarlo sin memoria RAM puede bloquear la máquina.

Encuentra los procesos que realmente están consumiendo memoria.

Si los indicadores confirman la tensión, identifique los procesos antes de tomar medidas:


RSS Esto mide la memoria física residente de un proceso, pero algunas páginas pueden ser compartidas entre varios procesos. Por lo tanto, sumar todos los valores RSS puede sobreestimar el consumo real. Utilice esta lista para identificar un posible problema y, a continuación, revise el servicio, su configuración y sus registros.

En arribaOrdenar por memoria, recuperar el PID y el nombre del servicio, y luego verificar su estado:

systemctl status service-concerned --no-pager
journalctl -u preocupación-servicio -n ​​100 --no-pager

No finalice el primer proceso de la lista. Una base de datos suele usar la RAM como caché de la aplicación y puede respetar su configuración. Primero, compruebe si el consumo de RAM es estable, previsible y se libera cuando disminuye la carga.

La falta de memoria se vuelve creíble cuando coinciden varias señales: disponible sigue siendo muy bajo, vmstat Se observan intercambios repetidos, los tiempos de respuesta se degradan y, finalmente, el kernel activa el mecanismo OOM killer.

journalctl -k -b | grep -Ei 'sin memoria|oom-killer|proceso eliminado'
dmesg -T | grep -Ei 'sin memoria|oom-killer|proceso eliminado'

En este caso, corrija la causa: límite de memoria configurado incorrectamente, fuga de memoria del servicio, carga excesiva o dimensionamiento insuficiente. Añada espacio de intercambio solo como medida de seguridad, no como reemplazo de una RAM permanentemente saturada. documenta los cálculos de sus columnas, mientras que proc_meminfo(5) Describe los contadores proporcionados por el núcleo.

sudo apt update && sudo apt upgrade