私はクラウドサーバーを持っています。ディスクIOの使用量についても請求されます。ここに統計の例があります。
04/Sep/2013 07:24:19
04/Sep/2013 08:24:19
0,5 GB / 1 vCPU (0,08 Kr. per hour): Charge for 44.7578125GB disk I/O
したがって、1時間の間、約45 GBのディスクI/Oに対して課金されます。
トラフィックが多いように思えますが、自分で確認するためにモニタリングを行いたいと思います。 dstat
やsysstat
などのツールについて知っていますが、1時間(または他の時間枠)の合計を示す例は見つかりませんでした。ほとんどの例は、次のコマンドのように結果を平均化しています。
dstat -tdD total 60
ここでは、60秒間のディスクI/O測定を示していますが、平均値です。したがって、大きなファイルをコピーすると、コピー中に数が増加しますが、処理が完了するとすぐに、数は再び減少します。言い換えれば、その期間の真の合計にはなりません。
特定の時間枠でのディスクI/Oの合計量をログに記録するにはどうすればよいですか?
ツールiostat
を使用して、ディスク使用率情報を収集できます。スイッチ-d
を含むいくつかの引数を取ります:
-d Display the device utilization report.
また、再実行する頻度の間隔を秒単位で引数として取ります。値3600
は、1時間の秒数になります。
$ iostat -d 3600
Linux 2.6.35.14-106.fc14.x86_64 (grinchy) 09/04/2013 _x86_64_ (4 CPU)
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 20.53 71.86 1259.61 20308334 356000380
dm-0 4.92 39.02 28.81 11027610 8143376
dm-1 0.54 0.93 3.38 261472 954912
dm-2 156.65 31.87 1227.42 9006394 346902056
このコマンドの出力は、ファイルにリダイレクトできます。
$ iostat -d 3600 >> iostat_hrly.log
iostat
のマニュアルページを参照すると、ユニットのかなり良い説明があります。
抜粋
Blk_read/s
Indicate the amount of data read from the device expressed in a
number of blocks per second. Blocks are equivalent to sectors with
kernels 2.4 and later and therefore have a size of 512 bytes. With
older kernels, a block is of indeterminate size.
Blk_wrtn/s
Indicate the amount of data written to the device expressed in a
number of blocks per second.
Blk_read
The total number of blocks read.
Blk_wrtn
The total number of blocks written.
つまり、ブロックは512バイトなので、デバイスsda
のMBで表したBlk_read/sは、71.86 * 512バイト= 36.79232キロバイト/秒になります。
出力の単位を自動的に変更する追加のスイッチがあります。
iostat
manページからの抜粋
-h Make the NFS report displayed by option -n easier to read by a human.
-k Display statistics in kilobytes per second instead of blocks per
second. Data displayed are valid only with kernels 2.4 and later.
-m Display statistics in megabytes per second instead of blocks or
kilobytes per second. Data displayed are valid only with kernels
2.4 and later.
したがって、これはより便利で、スループットをKB /秒で示します。
$ iostat -dk 3600
Linux 2.6.35.14-106.fc14.x86_64 (grinchy) 09/05/2013 _x86_64_ (4 CPU)
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 20.85 47.25 663.81 15475096 217427086
dm-0 5.01 20.00 14.43 6549301 4725068
dm-1 0.54 0.58 1.60 189064 524872
dm-2 165.30 26.65 647.78 8730281 212177124