vmstat
Ubuntu LinuxでIO統計を取得するために使用します。以下はコマンドの説明です。
IO
bi: Blocks received from a block device (blocks/s).
bo: Blocks sent to a block device (blocks/s).
これが何を意味するのか疑問に思いますblock device
。ローカルディスクを意味しますか?ディスクに大容量ファイルをコピーしようとしましたが、値は変更されませんでした。
答え1
はい。ローカルディスクはブロックデバイスでなければならず、ファイルのコピーはbi
/に表示されますbo
。毎秒キロバイト単位で表示されます。
使用上の注意。 ~によるとman vmstat
、数字の最初の行は、vmstat
「最後に再起動した後の平均を提供します」。これはただvmstat
オプションなしでコマンドを実行すると、この行が表示されます。後続のラインは「サンプリング期間に関する情報」を提供する。遅延」。 遅延はい、オプションのパラメータですvmstat
。
また、vmstat
データがディスクに書き込まれる時期も記録しておいてください。比較的少量のデータをファイルに書き込み、プログラムがそのデータをディスクに明示的にフラッシュしない場合、そのデータはしばらくの間キャッシュに残り、ディスクにすぐに書き込まれない可能性があります。
次の例は、ディスク上のファイルへのコピーvmstat 1
中に数秒間実行されます。/dev/zero
私はsync
いくつかのディスク書き込みがあることを確認するために使用します。
$ mkdir test &&
(cd test &&
(sync ; vmstat 1 > vmstat.log & PID1=$! ; \
cat </dev/zero >test & PID2=$! ; \
sleep 3 ; kill $PID2 ; sync ; kill $PID1 ; \
cat vmstat.log))
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 478976 2374288 76996 1023860 1 8 64 353 96 251 12 4 82 2 0
0 2 478976 1782068 76996 1615824 0 0 0 202764 1405 786 0 9 56 34 0
0 2 478976 1637036 76996 1760512 0 0 0 194572 1421 1013 0 2 59 39 0
0 2 478976 1491580 76996 1906852 0 0 0 159760 1355 850 0 2 62 36 0
0 1 478976 1491620 76996 1907068 0 0 0 129036 502 706 0 2 71 27 0
1 1 478976 1491588 76996 1907068 0 0 0 157696 491 672 0 3 77 20 0
0 3 478976 1491748 77004 1907064 0 0 0 19904 540 10719 0 2 73 25 0