Como estruturar o processo de construção

1

Estou construindo o código em máquinas Linux remotas e isso leva muito tempo. Como todo o sistema de arquivos está no NFS, suspeito que o NFS seja o gargalo. Posso fazer o perfil do processo de criação (tornar tudo) em chamadas de leitura / gravação do sistema? Ou, simplesmente, qual ferramenta eu preciso para encontrar o gargalo. Strace vai ajudar?

    
por CyberSnoopy 28.01.2011 / 22:15

1 resposta

0

O mais provável é que o Strace não o ajude neste caso, pois ele não fornece informações de tempo significativas ao longo do tempo. Você pode obter resumos usando o comando

strace -t make all

A saída mostra quanto tempo foi usado para E / S (chamadas de leitura e gravação), mas é difícil fazer a diferença entre o uso normal e as esperas excessivas.

Se você puder, a maneira mais fácil de verificar se o NFS é o gargalo é compilar o tempo no NFS e, em seguida, no disco local, que deve ser mais rápido. Se isso não for possível, um ponteiro útil e trivial é o tempo de espera, mostrado, por exemplo, em topo . De homem topo :

    wa  --  iowait
      Amount of time the CPU has been waiting for I/O to complete.

Por exemplo

Cpu(s): 0.0%us, 0.3%sy, 0.0%ni, 10.7%id, 80.0%wa, 0.0%hi, 0.0%si, 10.0%st

Mostra que o processador está usando principalmente o tempo para a conclusão da E / S. Neste caso, o culpado é outra máquina virtual que usa muito o disco, mas o caso é quase o mesmo com a espera pelo NFS.

Isto requer monitorar a saída top durante o processo de compilação (pelo menos algumas vezes), por exemplo, sar ( página man) coleta estatísticas do sistema automaticamente.

Espero que isso ajude.

    
por 31.01.2011 / 18:23