vmstatのIO出力を理解する方法は?

vmstatのIO出力を理解する方法は?

vmstatUbuntu 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

おすすめ記事