私は現在、特定のプロセスがネットワークI / O集約的かどうかを実行時に決定する必要があるプログラムをLinuxで作成しています。iotop
次のツールをいくつか試しましたが、iftop
どちらも特定のプロセスを監視できません。それでは、プロセスがネットワークI / O集約的かどうかをユーザーレベルで確認する方法はありますか?どんな助けでも大変感謝します!
答え1
待機チャンネルとは、特定の周波数で確認できます。経験する平均待機チャネルは、プロセスに費やされた時間を表します。
例:通常のnet-ioバインディングプロセスでUbuntuイメージをダウンロードします。
$ url='http://mirror.dkm.cz/ubuntu-releases/16.04/ubuntu-16.04-desktop-amd64.iso'
$ wget "$url" & pid=$!
これを行うとき:
$ ps h -p $pid -o wchan
あなたは資格がありますpoll_schedule_timeoutこれはほとんど常にそうであるため、おそらくネットワークIOバインディングを使用するプロセスです。エポールネットワークioの場合。
これとは対照的に、次の一般的なCPU集約型プロセスの場合:
$ ( while :; do :; done )& pid=$!
待機チャネルが必要-(=なし= CPUコアにあります)ほぼ常に。