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 iostat 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.
vmstat geralmente pertence ao pacote procps Ou Comece fazendo uma leitura a cada segundo, com um total de seis linhas:
-c Aumenta a largura das colunas se os valores ficarem difíceis de ler:
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 testes, 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 Ou 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áVerifique o armazenamento antes de culpar a CPU. 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;
st 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 Esta leitura está completa, pois a carga também inclui algumas tarefas bloqueadas e não se limita a uma porcentagem da CPU.
Reconhecendo a verdadeira pressão da memória com “se e somente se”
As colunas swpd, livre, lustre E 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 Indica a quantidade de swap utilizada. Um valor diferente de zero não comprova que o sistema ainda esteja trocando páginas. Preste atenção especial a isso. se E então Com base em amostras recentes:
se: 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 , uma memória disponível Níveis persistentemente baixos de memória e tempos de resposta degradados são um forte sinal de pressão na memória. Uma área de swap antiga e ocupada, sem atividade de swap atual, não tem o mesmo significado. O guia sobre RAM livre e disponível detalha o papel do cache, enquanto o artigo sobre o trocar no Linux
Confirme a espera do disco com bi, bo e iostat.
eu, bi E bom 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
iostat -xz 1 5
Olhe em particular espere %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.
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
systemctl --falhou
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
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 D 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 :
nproc, comnósOusimalto e poucoeu ia; - pressão de memória
disponívelfique baixo,seOuentãoretorno em várias amostras e a latência aumenta; - espera de disco :
bEsubir, entãoiostatconfirma 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 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.