Pergunta

Eu estou tentando rastrear a causa de gargalos de desempenho em um aplicativo que eu estou depuração no Linux. Os vários processos envolvidos parecem gastar muito do seu tempo de bloqueio sobre os pedidos de E / S, e eu queria saber se alguém sabia todos os truques do Linux que permitem ver por um determinado processo está bloqueada / o recurso é esperando por? Existe alguma coisa útil em /proc por exemplo?

Foi útil?

Solução

processo Seja o que for, você usa top para verificar o estado. Então você pode executá-lo através treliça ou strace . Isso deve detalhar o que está acontecendo. Se isso não for possível, gancho it até gdb . Ferramentas como iostat pode mostrar-lhe, em geral, o que está acontecendo (por exemplo, se o disco é gargalo) .

Outras dicas

Você pode usar o comando strace para ver o que o seu processo está fazendo. Você também pode achar que é útil para executar lsof em seu processo para ver quais arquivos e soquetes que está usando.

strace é seu amigo, porque você pode ficar o tempo gasto em cada chamada do sistema, mais você pode selecionar a chamada descritores de arquivos e sistema que você está interessado, mas você também pode obter suporte a partir do kernel:. Dê uma olhada no < a href = "http://www.latencytop.org/" rel = "noreferrer"> LatencyTOP

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top