Como diagnosticar a conclusão da tabulação lenta?

1

Há um determinado usuário que, quando pressiona a tecla tab para concluir um caminho de arquivo, leva vários segundos para que a máquina conclua o processo. Eles estão usando o shell bash.

Como posso diagnosticar o que exatamente está fazendo com que o preenchimento de guias seja interrompido para esse usuário?

    
por LINUX G33NYUS 04.04.2017 / 20:59

1 resposta

1

No bash, execute echo $$ para ver o ID do processo do shell, então prepare-se para pressionar Tab no bash. Abra outro terminal e execute strace -p1234 em que 1234 é o ID do processo do bash. strace imprimirá um rastreamento das chamadas do sistema que o bash executa. Mesmo que você não entenda exatamente o que está acontecendo, isso geralmente é suficiente para entender o que está demorando - normalmente, ele está fazendo uma solicitação de rede ou acessando um grande número de arquivos. Descobrir quais configurações alterar para evitar a lentidão pode ou não ser fácil.

Dependendo das configurações de segurança do seu sistema, talvez você não tenha permissão para executar strace em um processo não relacionado. Se você não for, execute strace como pai do bash:

strace -tt -T -o bash.trace bash

Execute a tentativa de conclusão e, em seguida, saia do bash e observe o arquivo de rastreio bash.trace . Cada linha tem um registro de data e hora no início, indicando quando a chamada do sistema foi iniciada, e o número entre colchetes angulares no final da linha é o tempo gasto na chamada do sistema.

strace é um comando do Linux. Se você não estiver executando o Linux, procure o comando correspondente em seu sistema - dtrace , truss , trace ,…

    
por 05.04.2017 / 04:05