IOstat 是Linux 上面分析io问题的利器。
如何使用过iostat来分析io问题
iostat [ -c ] [ -d ] [ -h ] [ -N ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ -z ] [ device […] | ALL ] [ -p [ device [,…] | ALL ] ] [ interval [ count ] ]
iostat
iostat各个参数的说明
-c 仅显示CPU统计信息.与-d选项互斥.
-d 仅显示磁盘统计信息.与-c选项互斥.
-k 以K为单位显示每秒的磁盘请求数,默认单位块.
-p device | ALL
与-x选项互斥,用于显示块设备及系统分区的统计信息.也可以在-p后指定一个设备名,如:
iostat -p hda
或显示所有设备
iostat -p ALL
-t 在输出数据时,打印搜集数据的时间.
-V 打印版本号和帮助信息.
-x 输出扩展信息.
iostat来对linux硬盘IO性能进行了解
[root@VPC1-66 ~]# iostat -x 1
Linux 2.6.32-696.3.2.el6.x86_64 (BJVPC5-66) 01/10/2019 x86_64 (16 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
1.33 0.00 0.35 0.01 0.00 98.31
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await r_await w_await svctm %util
vda 0.00 24.31 0.01 1.51 0.43 206.57 136.21 0.02 13.85 1.80 13.94 1.44 0.22
vdb 0.00 59.57 0.19 2.25 18.96 494.56 210.85 0.04 17.83 2.05 19.16 1.27 0.31
avg-cpu总体cpu使用情况统计信息,对于多核cpu,这里为所有cpu的平均值。各列参数含义如下:
%user CPU在用户态执行进程的时间百分比。
%nice CPU在用户态模式下,用于nice操作,所占用CPU总时间的百分比
%system CPU处在内核态执行进程的时间百分比
%iowait CPU用于等待I/O操作占用CPU总时间的百分比
%steal 管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟CPU的百分比
%idle CPU空闲时间百分比
-
若 %iowait 的值过高,表示硬盘存在I/O瓶颈
-
若 %idle 的值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量
-
若 %idle 的值持续低于1,则系统的CPU处理能力相对较低,表明系统中最需要解决的资源是 CPU
下面的几个帖子都非常专业,感兴趣的同学可以看一下。