Linux I / Oレイテンシーのデバッグ
私が管理しているいくつかのLinuxシステムでI / Oの問題が発生しています。それらは、ファイルのopen()、unlink()、close()などの単純なシステムコールでプロセスが数秒間ブロックすることが多いことを示しています(これは、関連するプログラムの一部が操作にかなり低いI / Oレイテンシを必要とするため問題です)正しく)。問題のシステムがある程度のI / O負荷を経験することは事実ですが、そのような膨大な待ち時間を正当化するのに十分だとは思えません。場合によっては、呼び出しが完了するまでに15秒以上かかることがあります(ただし、多くの場合、1〜2秒または3秒ほどかかります)。 私の質問は、どうしてこれが起こるのかを知るにはどうすればよいですか?私が欲しいのは、問題のプロセスがカーネルでブロックされているものと、それらがスリープしているものがビジーである理由、それで何が起こっているのか、などを教えてくれるツールです。そのようなツールはありますか、または何が起こるかをデバッグしようとする他の方法がありますか? もちろん、実際に何が起こっているのかについて何か手掛かりがあれば、どうすればそれを避けることができますか? 記録のために、私が使用するファイルシステムはXFSです。