解決策 1:
iostat
を使用すると、これをかなり正確に測定できます。 ツールです。
% iostat -dx /dev/sda 5
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
sda 0.78 11.03 1.19 2.82 72.98 111.07 45.80 0.13 32.78 1.60 0.64
ディスク使用率は最後の列に表示されます。これは次のように定義されます
<ブロック引用>I/O 要求がデバイスに発行された CPU 時間の割合 (デバイスの帯域幅使用率)。この値が 100% に近づくと、デバイスの飽和が発生します。
解決策 2:
iotop は、各プロセスが使用している IO の量を確認する top のバージョンです。標準のubuntuリポジトリにあります。 RHEL にあるのか Fedora にあるのかはわかりませんが、あるはずです。
iotop をサポートしていない古いカーネル (CentOS 5.x または RHEL 5.x など) の場合は、代わりに topio を使用します (ここに文書化されています:http://yong321.freeshell.org/freeware/pio.html#linux。/ に依存しています)。 proc//io を io 統計に使用し、iotop と同様の機能を提供します。詳細については、リンクを参照してください。
解決策 3:
コメントでサスタニンが示唆しているように、 /sys/block/sda/stat
で指定された値を直接処理できます または /proc/diskstats
.これは、言及されている他のツールが利用できず、簡単にインストールできない場合に役立ちます。
たとえば、(IIUC) 次のようなもの (bash で) は、1 秒あたりの読み取り数を与える必要があります:
OLD=`awk '{print $1}' /sys/block/sda/stat` # First field is number of read I/Os processed
DT=1
for ii in `seq 1 10`
do
sleep $DT
NEW=`awk '{print $1}' /sys/block/sda/stat`
echo $((($NEW-$OLD)/$DT))
OLD=$NEW
done
ドキュメントについては、https://www.kernel.org/doc/Documentation/iostats.txt および https://www.kernel.org/doc/Documentation/block/stat.txt を参照してください。
解決策 4:
iotop/top/iftop の機能をすべて 1 か所にまとめた top を見て、システムの重要な部分を強調してください。
解決策 5:
nmon ツールを参照することをお勧めします。後で閲覧するためにファイルにデータを記録するだけでなく、多くのシステムパラメーターのライブ負荷を表示します。ここから無料のツールを入手できます: