どのプロセスがすべてのI/O帯域幅を奪っているかをどのように監視できるのでしょうか。私が知っている唯一のコマンドはgstat
ですが、累積的な情報が表示されます。実行中のプロセスのI/O使用状況を検査するために使用できるツールはありますか?システムはFreeBSD 8.3です。
iotop は必要なものです。ほとんどのLinuxディストリビューションには、そのためのパッケージがあります。
答えはtop
を使用してヒットすることです m 表示するIOプロセス/スレッドごとのパーセンテージ。
単一のプロセスをトレースする場合は、ktraceを使用できます。
$ ktrace -ti -p PID
ktraceのマニュアル を読んで、使用する前にktraceを無効にする方法を理解してください。何かのようなもの:
$ ktrace -p PID -f debug.txt
$ ktrace -C
$ kdump -f debug.txt
kdump、出力は人間が読める形式ではないため。
簡単な調査によると、ネットワーク分析では、lsof -i
またはsockstat
(http://www.freebsd.org/cgi/man.cgi?query=sockstat&sektion=1)を使用して、特定のプロセスによって開かれたソケットを識別し、tcpdump
を使用してその接続の詳細(http ://www.thegeekstuff.com/2010/08/tcpdump-command-examples/#more-5676)。 trafshow
とiftop
を試すこともできます。
ディスクI/Oの場合:Linuxではsar -q
、似たようなものがあるはずです。