linuxディスクIOの表示

2911 ワード

Linuxシステムに性能の問題が発生し、一般的にtopを通過することができます.iostat、vmstatなどのコマンドを使用して、初歩的な位置決めの問題を表示します.
1. top
top - 16:50:36 up 1 day,  4:59,  2 users,  load average: 0.06, 0.08, 0.08
Tasks: 159 total,   1 running, 158 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.2%us,  0.1%sy,  0.0%ni, 99.8%id,  29.6%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  16332240k total,  5605800k used, 10726440k free,   377964k buffers
Swap:  1048572k total,    10144k used,  1038428k free,  2244152k cached

29.6%waを表示
IO待ち時間に占めるCPU時間の割合が30%を超えるとIO圧力が高くなる
2. iostat -x -k 1 3 
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.89    0.00    0.85   28.30    0.06   69.90
Device:   rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
vda       1.12    31.85    2.97    3.84   102.34   142.36    71.92     4.89  716.53  59.40  40.42
vdb       0.00    16.62    0.26    1.77    32.08    73.16   103.79     0.15   73.91  46.55   9.44
scd0      0.00     0.00    0.00    0.00     0.00     0.00     8.00     0.00    0.69   0.69   0.00
dm-0      0.00     0.00    1.13   35.38    89.29   141.49    12.64    35.61  975.29  11.34  41.42
dm-1      0.00     0.00    0.01    0.08     0.04     0.31     8.00    16.55 188972.09 1380.98  12.09

rrqm/s:mergeの読み取り操作を毎秒行う数.すなわちdelta(rmerge)/swrqm/s:毎秒mergeを行う書き込み数.すなわちdelta(wmerge)/sr/s:毎秒完了するリードI/Oデバイスの回数.すなわちdelta(rio)/s w/s:毎秒完了する書き込みI/0デバイス数.すなわちdelta(wio)/s rsec/s:毎秒リードセクタ数.すなわちdelta(rsect)/s wsec/s:1秒あたりの書き込みセクタ数.すなわちdelta(wsect)/srKB/s:毎秒Kバイト数を読み出す.セクタサイズが512バイトのwKB/sであるため、rsec/sの半分です.1秒あたりの書き込みKバイト数です.wsec/sの半分avgrq-sz:デバイスI/O操作あたりの平均データサイズ(セクタ)です.すなわちdelta(rsect+wsect)/delta(rio+wio)avgqu-sz:平均I/Oキュー長である.すなわちdelta(aveq)/s/1000(aveqの単位がミリ秒であるため)await:デバイスI/O動作毎の平均待ち時間(ミリ秒)である.すなわちdelta(ruse+wuse)/delta(rio+wio)svctm:デバイスI/O操作当たりの平均サービス時間(ミリ秒).すなわちdelta(use)/delta(rio+wio)%util:I/O操作に使用される時間の1秒あたりの割合、またはI/Oキューが空でない時間の割合.すなわちdelta(usr)/s/1000(useの単位がミリ秒であるため)%utilが100%に近い場合、I/O要求が多すぎて、I/Oシステムがフル負荷になっていることを示し、ディスクにボトルネックがある可能性があります.
重要なパラメータ%util:I/O操作に使用する時間が1秒にどれくらいあるか、あるいは1秒にどれだけの時間I/Oキューが空でないかというsvctm:平均1デバイスI/O操作当たりのサービス時間await:平均1デバイスI/O操作当たりの待ち時間avgqu-sz:平均I/Oキュー長%utilが100%に近づくと、I/O要求が多すぎてI/Oシステムがフル負荷であることを示します.ディスクにボトルネックがある可能性があります.一般的に%utilが70%を超えると、I/O圧力が大きくなり、読み取り速度がwaitになります.awaitのサイズは、通常、サービス時間(svctm)およびI/Oキューの長さおよびI/Oリクエストの発行モードに依存する.svctmがawaitに近い場合は、I/Oに待ち時間がほとんどないことを示します.awaitがsvctmよりはるかに大きい場合は、I/Oキューが長すぎることを示し、アプリケーションの応答時間が遅くなります.
3. vmstat
[root@host-172-28-5-132 crontab]# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0  10144 10689636 379488 2245436    0    0    34    54   12   73  1  1 70 28  0

vmstat bパラメータ(リソース待ちのプロセス数)とwaパラメータ(I/O待ちにかかるCPU時間の割合、30%を超えるとI/O圧力が高い)を確認する
4. iotop