Às vezes, meus servidores mostram uma alta média de carga no programa "top" (por exemplo, a carga é ~ 10 em uma máquina de 4 núcleos), mas o uso real da CPU não é particularmente alto.
Suponho que o problema é que existem muitos trabalhos intensivos de E / S em execução. Existe alguma maneira fácil de identificar esses trabalhos que estão causando a carga, se os valores de "% CPU" no topo não forem tão altos?
top
comando?Respostas:
iostat
pode relatar estatísticas como essa. Geralmente incluído na sua distribuição no pacote sysstat.O dstat também pode valer uma olhada, é um substituto moderno.
fonte
iostat
seria a minha resposta.Se você possui contabilidade de E / S no seu kernel, pode usar
iotop
para fornecer informações assim. Além disso, ferramentas de monitoramento como o collectd podem registrar e relatar os dados.fonte
Para descobrir o que está causando alta carga, você pode verificar algumas coisas.
vmstat -w
mostrará ovierwiem (processos, swap, mem, cpu, io, sistema)pmstat -P ALL
fornecerá estatísticas (com% iowait) por núcleo da CPUiostat -x
procure alto% de utilidade ou longa espera ou grande tamanho médio da filaiotop
ps -ax
procure o estado D, que é sono ininterrupto (geralmente IO), execute-o mais uma vez, verifique se eles ainda estão no estado Dsar -b
- atividades gerais iosar -d
- atividades individuais de dispositivos de bloco iofonte