ディスクIOを監視する方法は?

ディスクIOを監視する方法は?

Debian Linuxサーバーで一般的なディスクIOモニタリングを実行したいと思います。ディスクのパフォーマンスが限界に達したか、1日の特定の時間にピークに達したかどうかを確認するには、ディスクIOモニタリングについてどのようなツールを知る必要がありますか?

答え1

ディスクI / Oトレンドにはいくつかのオプションがあります。個人的に好きなコマンドはのsarコマンドですsysstat。デフォルトでは、次の出力が提供されます。

09:25:01 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
09:35:01 AM     all      0.11      0.00      0.01      0.00      0.00     99.88
09:45:01 AM     all      0.12      0.00      0.01      0.00      0.00     99.86
09:55:01 AM     all      0.09      0.00      0.01      0.00      0.00     99.90
10:05:01 AM     all      0.10      0.00      0.01      0.02      0.01     99.86
Average:        all      0.19      0.00      0.02      0.00      0.01     99.78

%iowaitI / Oを待つのに費やされた時間です。 Debianパッケージの場合、/etc/default/sysstatパッケージをインストールした後、設定ファイルを介して統計コレクタを有効にする必要があります。

デバイス別に分類された現在の使用率を表示するには、iostatsysstatパッケージでも次のコマンドを使用できます。

$ iostat -x 1
Linux 3.5.2-x86_64-linode26 (linode)    11/08/2012      _x86_64_        (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.84    0.00    0.08    1.22    0.07   97.80

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
xvda              0.09     1.02    2.58    0.49   112.79    12.11    40.74     0.15   48.56   3.88   1.19
xvdb              1.39     0.43    4.03    1.82    43.33    18.43    10.56     0.66  112.73   1.93   1.13

トレンドグラフにディスク使用量を表示する他のオプションは次のとおりです。ムニンそしてサボテン

答え2

見学するiotop

Total DISK READ :       0.00 B/s | Total DISK WRITE :       0.00 B/s
Actual DISK READ:       0.00 B/s | Actual DISK WRITE:       0.00 B/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND                                                                                                             
    1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % init splash
    2 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kthreadd]
    4 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/0:0H]
    6 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [mm_percpu_wq]
    7 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/0]
    8 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [rcu_sched]

それとも、iodumpそれがあなたの考え方ともっと一致するならば。

注:これを行うには、少なくともカーネル 2.6.20働く

答え3

わかりましたdstat。ディスクごと、mdデバイス(RAID)ごとの合計と統計を表示することができ、より良い概要のために色を使用することもできます。

$ dstat -tdD total,sda,sdb,sdc,md1 60 
----system---- -dsk/total----dsk/sda-----dsk/sdb-----dsk/sdc-----dsk/md1--
     time     | read  writ: read  writ: read  writ: read  writ: read  writ
08-11 22:08:17|3549k  277k: 144k   28k: 851k   62k: 852k   60k:  25k   82k
08-11 22:09:17|  60k  258k:1775B   15k:  13k   63k:  15k   60k:  68B   74k
08-11 22:10:17| 176k  499k:   0    14k:  41k  122k:  41k  125k: 273B  157k
08-11 22:11:17|  42k  230k:   0    14k:9830B   54k:  14k   51k:   0    70k
08-11 22:11:52|  28k  132k:   0  5032B:5266B   33k:9479B   28k:   0    37k
  • -tタイムスタンプ用
  • -dディスク統計用
  • -D報告する正確なデバイスの指定
  • 60平均60秒を超えています。ディスプレイは毎秒更新されますが、新しい行は60秒ごとに始まります。

  • この例では使用されていませんが、-cほとんどの場合、ディスクデータを待っているCPUに関連するスタンバイIOの割合を報告できます。

ほとんどのLinuxディストリビューションでは機能しますが、リポジトリからインストールする必要がある場合があります。

答え4

別のオプションは、次のものを使用することです。sudo iotop -aoP

-a    Will show accumulated output
-o    Will only output 
-P    Will only show processes instead of threads

このプログラムは、iotop が開始されてからプロセスがディスクに書き込んだデータの量を知らせます。

関連情報