использование iostat
1. Грамматика
Использование: iostat [опции] [<интервал времени> [<количество раз>]]
Описание распространённых опций:
-c: отображать только статистику ЦП системы, то есть выводить только результаты среднего значения ЦП, исключая результаты устройства.
-d: выводить только результаты устройства, исключая результаты ЦП.
-k/-m: выводить результаты в КБ/МБ, а не в количество секторов
-x: вывести более подробную статистику устройства ввода-вывода.
Interval/count: интервал между каждым выводом, count указывает количество выходов, а без счетчика указывает на циклический вывод.
Две общие команды
// 简单使用
[root@database orcl]# iostat
Linux 2.6.32-696.16.1.el6.x86_64 (database) 05/22/2021 _x86_64_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.56 0.00 0.33 10.73 0.00 88.39
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
vda 1.57 33.57 7.65 353634 80552
vdb 430.68 166.73 5220.61 1756648 55002408
// 单位是m, 设备是vdb,5秒查询一次
[root@database orcl]# iostat -m -d vdb 5 3
Linux 2.6.32-696.16.1.el6.x86_64 (database) 05/22/2021 _x86_64_ (4 CPU)
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
vdb 460.01 0.08 2.52 857 28458
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
vdb 867.20 0.00 2.05 0 10
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
vdb 878.00 0.00 2.04 0 10
// 单位是m, 设备是vdb,查看详细信息,5秒查询一次,无限循环
[root@database orcl]# iostat -m -d vdb -x 5
Linux 2.6.32-696.16.1.el6.x86_64 (database) 05/22/2021 _x86_64_ (4 CPU)
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
vdb 0.42 402.80 2.43 459.01 0.08 2.52 11.53 1.71 3.71 1.02 3.72 1.01 46.78
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
vdb 0.00 97.80 0.00 769.00 0.00 1.89 5.02 0.95 1.24 0.00 1.24 1.24 95.04
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
vdb 0.00 20.40 0.00 943.20 0.00 1.93 4.18 0.94 1.00 0.00 1.00 1.00 94.04
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
vdb 0.00 26.60 0.00 958.60 0.00 1.98 4.23 0.94 0.98 0.00 0.98 0.98 93.74
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
vdb 0.00 65.00 0.00 870.60 0.00 1.96 4.61 0.95 1.09 0.00 1.09 1.08 94.46
3. Анализ параметров
// 各列含义:
rrqm/s: 每秒对该设备的读请求被合并次数,文件系统会对读取同块(block)的请求进行合并
wrqm/s: 每秒对该设备的写请求被合并次数
r/s: 每秒完成的读次数
w/s: 每秒完成的写次数
rkB/s: 每秒读数据量(kB为单位)
wkB/s: 每秒写数据量(kB为单位)
avgrq-sz:平均每次IO操作的数据量(扇区数为单位)
avgqu-sz: 平均等待处理的IO请求队列长度
await: 平均每次IO请求等待时间(包括等待时间和处理时间,毫秒为单位)
svctm: 平均每次IO请求的处理时间(毫秒为单位)
%util: 采用周期内用于IO操作的时间比率,即IO队列非空的时间比率
// 重点参数
1、iowait% 表示CPU等待IO时间占整个CPU周期的百分比,如果iowait值超过50%,或者明显大于%system、%user以及%idle,表示IO可能存在问题。
2、avgqu-sz 表示磁盘IO队列长度,即IO等待个数。
3、await 表示每次IO请求等待时间,包括等待时间和处理时间
4、svctm 表示每次IO请求处理的时间
5、%util 表示磁盘忙碌情况,一般该值超过80%表示该磁盘可能处于繁忙状态。