Um servidor está ficando lento, mas principal Nem sempre mostra um processo que está 100% bloqueado. Com vmstatEm poucos segundos, você pode verificar se as tarefas estão aguardando no processador, no disco ou na memória. Isso, claro, desde que você não tire nenhuma conclusão precipitada da primeira linha.
Eu sempre começo com várias amostras e depois comparo os contadores com… livre, e os processos. Esta é a única maneira de distinguir a verdadeira pressão na memória de uma CPU sobrecarregada ou de um armazenamento que não está respondendo corretamente.

Execute o vmstat em várias amostras.
procps Ou procps-ngComece fazendo uma leitura a cada segundo, com um total de seis linhas:
vmstat 1 6
A primeira linha resume a atividade desde o início. Ela não descreve precisamente a segunda linha, que acabou de se passar. Para diagnosticar uma lentidão contínua, concentre-se na leitura das linhas seguintes. A opção -c Aumenta a largura das colunas se os valores ficarem difíceis de ler:
vmstat -w 1 6
Mantenha também um segundo terminal aberto. Inicie a leitura, reproduza a ação lenta e observe as colunas que mudam simultaneamente. Um pico isolado durante uma operação de salvamento ou compilação não tem o mesmo peso que uma fila que permanece alta por vários minutos.
Leia as colunas r, b e CPU juntas.
No grupo , R Isso indica o número de tarefas executáveis que estão em execução ou aguardando tempo de processador. Compare esse valor com o número de processadores lógicos:
nproc
tempo de atividade
Se R permanece bem acima do número de CPUs disponíveis e que nós Ou sim Se os níveis estiverem altos, provavelmente a máquina está com falta de tempo de processamento. nós corresponde ao código executado no espaço do usuário, enquanto sim Mede o trabalho do núcleo. Um valor sim Valores excepcionalmente altos podem ser resultado de um grande número de chamadas de sistema, interrupções ou mudanças de contexto.
A coluna b Isso inclui tarefas presas em um estado de suspensão ininterrupta, geralmente aguardando entrada ou saída. Se b andar com olá olá Representa o tempo durante o qual o processador está ocioso enquanto uma operação de entrada/saída está pendente.
eu iaTempo ocioso da CPU;olá: aguardando entrada/saída;stTempo gasto pelo hipervisor em uma máquina virtual.
Em um VPS, um A repetição constante pode indicar um sistema físico sobrecarregado. Em uma máquina física, esta coluna normalmente permanece zerada. O guia sobre o média de carga no Linux
Reconhecendo a verdadeira pressão da memória com “se e somente se”
As colunas swpd, , lustre escondido Fornecem uma visão compacta da memória. Não são suficientes para indicar saturação. O Linux reutiliza parte da RAM como cache, e livre Em vmstat não substitui a coluna disponível da ordem livre.
grátis -h
trocar --show
swpd se E então Com base em amostras recentes:
: dados lidos da memória swap para a RAM;então: dados movidos da RAM para a memória de troca.
Valores repetidos em se Ou então, uma memória disponível detalha o papel do cache, enquanto o artigo sobre o trocar no Linux Explica por que você não deve esvaziá-lo por reflexo.
Confirme a espera do disco com bi, bo e iostat.
Na seção eu, bi E Representam os blocos recebidos e enviados por segundo. Mostram a atividade geral, mas não o dispositivo responsável nem seu tempo de resposta. b E olá permanecer alto, mudar para iostat :
Olhe em particular , a fila e %util para cada disco. Não confie em um único limite: um SSD NVMe pode lidar com várias operações em paralelo, enquanto um disco rígido se degrada rapidamente com acesso aleatório. Compare os valores com o comportamento normal da máquina e o processamento atual.
O artigo sobre iostat no Linux Explica como conectar esses contadores ao dispositivo correto. Se as lentidões forem acompanhadas de erros, verifique também as mensagens do kernel:
journalctl -k -b -p aviso..alerta
Recupere o processo antes de reiniciar um serviço.
vmstat Indica a provável natureza do bloqueio, não o nome do processo. Em seguida, classifique as tarefas de acordo com o recurso suspeito:
ps -eo pid,user,stat,ni,pcpu,pmem,comm --sort=-pcpu | head
ps -eo pid,user,stat,ni,pcpu,pmem,comm --sort=-pmem | head
htop
Em ESTATÍSTICA, um estado D Isso geralmente corresponde a um sono ininterrupto. Pode explicar uma coluna. b O PID é alto, mas não o encerre imediatamente. Primeiro, identifique o serviço, os arquivos abertos e os logs:
ps -fp PID
systemctl status service-concerned --no-pager
jornalctl -u serviço-concerne -n 100 --no-pager
Um banco de dados pode consumir muita RAM sem vazamento de memória, e um processo em um estado Pode ser que esteja aguardando um disco ou armazenamento de rede. Reiniciar o sistema às vezes mascara o sintoma sem resolver o problema. Verifique a duração, a carga de trabalho e os erros antes de tomar qualquer providência.
Decida com base nas contagens sobrepostas.
O diagnóstico torna-se útil quando várias colunas contam a mesma história:
- CPU saturada :
Rpermanece elevado em comparação comnproc, comnóssimalto e poucoeu ia; - pressão de memória :
disponívelseOuentãoretorno em várias amostras e a latência aumenta; - espera de disco :
bEolásubir, entãoconfirma que o dispositivo é lento; - contenção de virtualização :
stPermanece visível em uma máquina virtual, apesar de uma carga interna moderada.
Para procurar uma instância do OOM killer, use os logs do kernel:
journalctl -k -b | grep -Ei 'sem memória|oom-killer|processo morto'
Lá Página de manual do vmstat descreve cada campo. O de iostat Detalhes das métricas de armazenamento. Mantenha suas leituras antes e durante a lentidão: sem comparação ao longo do tempo, mesmo um contador alto permanece difícil de interpretar.