![Por que o DU está causando alto uso da CPU?](https://rvso.com/image/623615/Por%20que%20o%20DU%20est%C3%A1%20causando%20alto%20uso%20da%20CPU%3F.png)
No CentOS 6.5, du -sk /home
e sh -c (du -sk \/home) 2>/dev/null
executado devido a um uso de disco agendado para /home, mas du
está causando 100% de uso da CPU. Além disso, antes mesmo de terminar, outro du é executado e se acumula, deixando o sistema de joelhos.
Desde então, desabilitei as verificações automatizadas, mas du -sk /home
também não consigo executar manualmente. du
funciona bem (rápido) em outros diretórios (embora /home seja o maior - 4912620 - não deve demorar tanto)
Gostaria de descobrir por que o DU está causando alto uso da CPU em/home
ATUALIZAÇÃO 1: Uma reinicialização completa (host + convidado) resolveu o problema.
ATUALIZAÇÃO 2: O problema voltou. Enquanto du está em execução, o uso da CPU é dividido quase meio a meio entre (us) e (sy). (wa) nunca ultrapassa 1%. Além disso, IOWAIT mostraapenas gravações em disco?
Responder1
Não posso dizer exatamente por que, mas aqui está o que eu faria para restringir o que está acontecendo:
cd /home
for i in * ; do echo "Starting in ${i}..." ; du -s ${i} ; done
Isso executará "du -s" para cada comando dentro do /home
diretório e mostrará o que ele está prestes a fazer. Isso também pressupõe que você esteja usando sh ou bash como shell.
Ao descobrir qual diretório está causando o problema, mova mais um diretório e veja o que acontece lá. Lembre-se também de que isso não verificará diretórios ocultos ("ponto") no nível em que você inicia o loop for. Talvez seja necessário verificá-los também ou modificar a expressão glob para incluí-los.
Responder2
Eu finalmente descobri qual era o problema quando me depareiesta postagem.
root> modprobe vhost_net root> echo vhost_net > /etc/modules
Por algum motivo, as interfaces virtio não carregavam o driver antes. Tudo está bem agora.