しばらくの間、GNU/LinuxでディスクIOPSをカウントする方法に関する情報が見つかりません。 iostatを見ましたが、正しいかどうかわかりません。また、システムが起動してからずっとiopsをカウントできるツールが必要ですが、iostatはこれを行いません。つまり、システム全体および任意の論理ボリュームのディスクIOPSを意味します。
そのような論理ボリュームまたはsmthのディスクIOPSを制限するためのいくつかのツールがあるかもしれません。
重要な場合は、Debianを使用します。また、ハードウェアMegaRaid RaidControllerを使用しています。それはsmthに影響を与える可能性があります。
iostatは、時間の経過とともにIOカウントを取得する正しい方法です。
起動後の合計が必要な場合は、/proc/disktats
から読み取ることができます。ファイル形式の説明は、カーネルのDocumentation/iostats.txt
(または ここ )にあります。
この情報は、/sys/block/${DEVICE}/stat
および/sys/block/${DEVICE}/${DEVPART}/stat
のデバイスごとまたはパーティションごとにも利用できます(${DEVICE}
をデバイス名に置き換えます。例:sda
および${DEVPART}
をパーティション名(例:sda5
)。
ディスクIOを監視するためにcd /dev; iostat -xk 3 sd? fio?
を使用することを好みます。このサンプルの抜粋を見てください。
avg-cpu: %user %Nice %system %iowait %steal %idle
1.20 0.00 4.58 0.00 0.00 94.22
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
sdg 0.00 0.00 6.67 238.00 3413.33 39774.67 353.04 0.25 1.02 0.37 9.17
sda 0.00 0.00 5.33 3570.67 2730.67 42230.50 25.15 0.44 0.12 0.07 25.20
sdc 0.00 0.00 10.33 795.00 3089.33 44510.00 118.21 0.40 0.47 0.16 12.83
sdf 0.00 0.00 6.67 254.67 3413.33 40318.67 334.68 0.24 0.93 0.35 9.07
sdh 0.00 0.00 14.33 338.00 3444.00 43286.67 265.26 0.27 0.78 0.29 10.23
sdi 0.00 0.00 8.67 906.33 4437.33 44533.17 107.04 0.36 0.40 0.15 14.17
sdb 0.00 0.00 4.67 2355.33 2389.33 44427.50 39.68 0.51 0.21 0.08 18.87
sdd 0.00 0.00 7.00 256.00 3414.67 40434.67 333.46 0.32 1.22 0.37 9.60
sde 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
fioa 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
この間隔の平均IOPSは、r/s
とw/s
の合計であり、avgrq-sz
(セクター単位の平均要求サイズ)により、ワークロードがランダムかシーケンシャルかがわかります。
上記の例のsdg
とsda
を見てください。どちらもディスクに約40MBpsを書き込んでいますが、sda(ランダムワークロード)の要求サイズははるかに小さく、IOPSが高くなります。
IOPS(およびその他のパフォーマンス)を長期間追跡する場合は、 nmon を使用してデータを収集し、きれいなグラフを生成することを強くお勧めします。
Iotopはあなたが望むことをしますか?おそらくあなたが望んでいたよりも少しリアルタイムです。
それ以外の場合は、iostat 5 5
を試してください