Un servidor se está ralentizando, pero arriba no siempre muestra un proceso que esté bloqueado al 100%. Con vmstatEn pocos segundos se puede ver si las tareas están pendientes en el procesador, el disco o la memoria. Siempre y cuando, claro está, no se saquen conclusiones de la primera línea.
Siempre empiezo con varias muestras, luego hago una referencia cruzada de los contadores con gratis iostato y los procesos. Esta es la única manera de distinguir la verdadera presión de memoria de una CPU sobrecargada o un almacenamiento que no responde correctamente.

Ejecutar vmstat en varias muestras
vmstat normalmente pertenece al paquete proceso O procps-ngComience tomando una lectura cada segundo, con un total de seis líneas:
vmstat 1 6
La primera línea resume la actividad desde el inicio. No describe con precisión la segunda línea que acaba de transcurrir. Para diagnosticar una ralentización continua, concéntrese en leer las siguientes líneas. La opción -w Amplía las columnas si los valores resultan difíciles de leer:
vmstat -w 1 6
Mantén abierta una segunda terminal. Inicia la lectura, reproduce la acción lenta y luego anota las columnas que cambian simultáneamente. Un pico aislado durante una operación de guardado o compilación no tiene el mismo impacto que una cola que permanece alta durante varios minutos.
Lee las columnas r, b y CPU juntas.
en el grupo ensayos, Esto indica el número de tareas ejecutables que se están ejecutando o esperando tiempo de procesador. Compare este valor con el número de procesadores lógicos:
nproc
tiempo de actividad
Si r permanece muy por encima del número de CPU disponibles y que a nosotros si Si los niveles son altos, es probable que la máquina carezca de tiempo de procesamiento. a nosotros corresponde al código ejecutado en el espacio de usuario, mientras que si mide el trabajo del núcleo. Un valor si Un valor inusualmente alto puede deberse a un gran número de llamadas al sistema, interrupciones o cambios de contexto.
la columna b Esto incluye tareas atascadas en un estado de suspensión ininterrumpible, a menudo esperando entrada o salida. b montar con Comprueba el almacenamiento antes de culpar a la CPU. Washington representa el tiempo durante el cual el procesador está inactivo mientras una operación de entrada/salida está pendiente.
identificacióntiempo de inactividad de la CPU;Washington: esperando entrada/salida;calle: tiempo que tarda el hipervisor en una máquina virtual.
En un VPS, un calle La repetición repetida puede indicar un host físico sobrecargado. En una máquina física, esta columna normalmente permanece en cero. La guía en el carga promedio en Linux Esta lectura es completa, ya que la carga también incluye algunas tareas bloqueadas y no se limita a un porcentaje de CPU.
Reconocer la verdadera presión de memoria con if y only if
las columnas swpd, gratis pulir Y oculto Proporcionan una vista compacta de la memoria. No son suficientes para indicar la saturación. Linux reutiliza parte de la RAM como caché, y gratis vmstat no reemplaza la columna disponible de la orden gratis.
libre -h
intercambio --mostrar
Indica la cantidad de intercambio de memoria utilizada. Un valor distinto de cero no demuestra que el sistema siga intercambiando páginas. Preste especial atención a esto. si Y entonces basado en muestras recientes:
si: datos leídos desde el archivo de intercambio a la RAM;entonces: datos movidos de la RAM al archivo de intercambio.
Valores repetidos en si O entonces, un recuerdo disponible Una memoria persistentemente baja y tiempos de respuesta degradados constituyen una fuerte señal de presión de memoria. Un área de intercambio antigua y ocupada sin actividad de intercambio actual no tiene la misma importancia. La guía sobre RAM libre y disponible detalla el papel de la caché, mientras que el artículo sobre el intercambiar bajo Linux Explica por qué no debes vaciarlo por reflejo.
Confirme una espera de disco con bi, bo e iostat.
en la sección yo, Y representan los bloques recibidos y enviados por segundo. Muestran la actividad general, pero no el dispositivo responsable ni su tiempo de respuesta. Si b Washington permanecer alto, cambiar a :
iostat -xz 1 5
mira en particular esperar, la cola y % útil Para cada disco. No se fíe de un único umbral: una unidad SSD NVMe puede gestionar varias operaciones en paralelo, mientras que un disco duro se degrada rápidamente con el acceso aleatorio. Compare los valores con el comportamiento habitual del equipo y el procesamiento actual.
El artículo sobre iostat en Linux Explica cómo conectar estos contadores al dispositivo correcto. Si las ralentizaciones van acompañadas de errores, compruebe también los mensajes del kernel:
journalctl -k -b -p advertencia..alerta
systemctl --failed
Recupere el proceso antes de reiniciar un servicio.
vmstat Indica la naturaleza probable del bloqueo, no el nombre del proceso. A continuación, ordena las tareas según el recurso sospechoso:
ps -eo pid,user,stat,ni,pcpu,pmem,comm --sort=-pcpu | head
ps -eo pid,user,stat,ni,pcpu,pmem,comm --sort=-pmem | head
arriba
En ESTADÍSTICA, un estado D Esto generalmente corresponde a un sueño ininterrumpido. Puede explicar una columna. b El PID es alto, pero no lo detengas inmediatamente. Primero, identifica su servicio, archivos abiertos y registros:
ps -fp PID
systemctl status service-concerned --no-pager
journalctl -u preocupación-servicio -n 100 --no-pager
Una base de datos puede consumir mucha RAM sin fugas, y un proceso en un estado D Es posible que esté esperando un disco o almacenamiento en red. Reiniciar el sistema a veces solo disimula el síntoma sin solucionar el problema. Antes de tomar cualquier medida, compruebe la duración, la carga de trabajo y los errores.
Tomar decisiones en función de los contadores superpuestos.
- CPU saturada :
rsigue siendo alto en comparación connproc, cona nosotrosOsialto y pequeñoidentificación; - presión de la memoria :
disponiblemantente agachado,Oentonces - :
bYWashingtonlevántate, entoncesiostatoconfirma que el dispositivo es lento; - contienda de virtualización :
calle
Para buscar una instancia de OOM killer, utilice los registros del kernel:
journalctl -k -b | grep -Ei 'sin memoria|oom-killer|proceso eliminado'
Página del manual de vmstat describe cada campo. El de iostato Registra las métricas de almacenamiento. Conserva las lecturas antes y durante la ralentización: sin una comparación a lo largo del tiempo, incluso un contador alto resulta difícil de interpretar.