Se eu usar "top", posso ver qual CPU está ocupada e qual processo está usando toda a minha CPU.
Se eu usar "iostat -x", posso ver qual unidade está ocupada.
Mas como posso ver qual processo está usando toda a taxa de transferência da unidade?
linux
io
performance
system-administration
iostat
Matthew Crumley
fonte
fonte
Respostas:
Você está procurando
iotop
(supondo que você tenha kernel> 2.6.20 e Python 2.5). Caso contrário, você está tentando se conectar ao sistema de arquivos. Eu recomendo o primeiro.fonte
iotop
parece estar mostrando a largura de banda de E / S em vez do número de IOPS consumidos pelos processos. Isso não é super relevante. Um processo que faz muitas pequenas gravações + sincronização vai consumir mais da capacidade de E / S do disco do que um processo que grava um grande lote contíguo de dados em alta velocidade.[jdb2/nvme0n1p1]
no iotop, mas tive sorte em habilitar / proc / sys / vm / block_dump e comparar a saída com um sistema saudável / estável lxadm.com/Simple_filesystem_read/write_tracing_with_/proc/sys/… Isso ajudou a encontrar um contêiner do docker que gerava continuamente solicitações kubectl, esgotando os créditos de burst de um volume EBS com entradas/home/spinnaker/.kube/cache/discovery/.../serverresources.json
. Depois de restringir as coisas a um nome de usuário / processo, algo comoiotop -atku systemd-network | grep kubectl
também pode ajudarPara descobrir quais processos no estado 'D' (aguardando resposta do disco) estão em execução:
while true; do date; ps aux | awk '{if($8=="D") print $0;}'; sleep 1; done
ou
watch -n1 -d "ps axu | awk '{if (\$8==\"D\") {print \$0}}'"
Como você pode ver no resultado, o jdb2 / dm-0-8 (processo de registro ext4) e o kdmflush bloqueiam constantemente o Linux.
Para mais detalhes, este URL pode ser útil: Linux Wait-IO Problem
fonte
atop também funciona bem e instala facilmente até mesmo em sistemas CentOS 5.x mais antigos que não podem ser executados no iotop. Clique
d
para mostrar os detalhes do disco,?
para obter ajuda.Isso mostra claramente que java pid 9862 é o culpado.
fonte
TL; DR
Se você pode usar
iotop
, faça-o. Caso contrário, isso pode ajudar.Use e
top
, em seguida, use estes atalhos:Isso deve mostrar valores
> 1.0 wa
para pelo menos um núcleo - se não houver espera de disco, simplesmente não há carga de E / S e não há necessidade de procurar mais. Cargas significativas geralmente começam> 15.0 wa
.Escolha 'S', a coluna de status do processo. Inverta a ordem de classificação para que os processos 'R' (em execução) sejam exibidos na parte superior. Se você puder localizar processos 'D' (esperando pelo disco), terá um indicador de qual pode ser o culpado.
fonte
Para usuários do KDE, você pode usar 'ctrl-esc' para chamar um monitor de atividade do sistema e há gráficos de atividades de E / S com a id e o nome do processo.
Não tenho permissão para fazer upload de imagem, devido ao 'novo status de usuário', mas você pode conferir a imagem abaixo. Possui uma coluna para leitura e gravação de IO.
fonte
Você já considerou
lsof
(listar arquivos abertos)?fonte
iotop com a bandeira -a:
fonte