一部のユーザーが Tab キーを押してファイルパスを完成させると、コンピュータが完了するまで数秒かかります。彼らはbashシェルを使用しています。
このユーザーのタブの完成が中断される原因が正確に何であるかを診断するにはどうすればよいですか?
答え1
Bashで実行してecho $$
シェルのプロセスIDを確認し、Tabbashを押す準備をします。別の端末を開いて実行します。strace -p1234
ここで、1234はbashのプロセスIDです。strace
bashによって実行されたシステムコールのトレースを印刷します。何が起こっているのか完全に理解していなくても、通常は時間がかかることを理解するのに十分です。通常、ネットワーク要求が行われているか、大容量ファイルにアクセスしています。速度の低下を避けるためにどの設定を変更する必要があるかを理解するのは簡単ではないかもしれません。
システムのセキュリティ設定によっては、関係のないプロセスを実行できない場合がありますstrace
。それ以外の場合は、strace
bashの親として実行してください。
strace -tt -T -o bash.trace bash
完了しようとしたら、bashを終了してトレースファイルを確認してくださいbash.trace
。各行の先頭にはシステムコールが開始された時刻を示すタイムスタンプがあり、行の末尾の山かっこ内の数字はシステムコールにかかった時間です。
strace
Linux命令です。 Linuxを実行していない場合は、システムで適切なコマンド( 、、、、dtrace
... )を見つけます。truss
trace