主要内容
1、iostat -x -m 1 实时
2、iotop 进程
3、sar -dp 历史
一、动态指标
TOP 观察:
wait IO等待所占用的CPU时间的百分比,高过30%时IO压力高
iostat 查看块设备维度的磁盘IO情况
iostat -x -k 1
iostat -x -m 1
- -x显示详细信息
- -k以kb显示
- -m mb
- 1秒刷一次
- -t 显示时间
每隔2秒刷新显示,且显示3次
iostat 2 3
显示指定磁盘信息
iostat -d /dev/sda
iostat -d -k 1 10
tps:每秒多少次I/O请求
kB_read/s:每秒读取的数据量
kB_wrtn/s:每秒写入的数据量
kB_read:读取的总数据量
kB_wrtn :写入的总数据量
使用-x获得更多信息
rrqm/s:每秒进行 merge 的读操作数目
wrqm/s:每秒进行 merge 的写操作数目
r/s:每秒读I/O次数
w/s:每秒写I/O次数
rkB/s:每秒读K字节数
wkB/s:每秒写K字节数
avgrq-sz:平均每次设备I/O操作的数据大小
avgqu-sz:平均I/O队列长度 。if >1,可能是硬件设备已经饱和(部分设备支持并行写入)
await:平均每次设备I/O操作的等待时间(毫秒)包括IO等待和实际操作的耗时,如果这个数值过大,可能是硬件设备遇到了瓶颈或者出现故障。
svctm:平均每次设备I/O操作的服务时间(毫秒)
%util:一秒中有百分之多少的时间用于I/O操作
如果%util接近100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈
这个数值表示设备的繁忙程度,如果超过60,可能会影响IO性能
查看cpu状态
iostat -c 1 1
avg-cpu段:
%user:CPU处在用户模式下的时间百分比。
%nice:CPU处在带NICE值的用户模式下的时间百分比。
%system:CPU处在系统模式下的时间百分比。
%iowait:CPU等待输入输出完成时间的百分比。iowait % < 20%比较好值过高,表示硬盘存在I/O瓶颈
%steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比。
%idle:CPU空闲时间百分比。
如果%idle值高但系统响应慢时,可能是CPU等待分配内存,应加大内存容量
如果%idle值持续低于10,表明CPU处理能力相对较低,系统中最需要解决的资源是CPU
iotop -oP查看磁盘整体情况和各进程情况
yum -y install iotop
iotop -h
o:只显示有io操作的进程
-b:批量显示,无交互,主要用作记录到文件。 -n NUM:显示NUM次,主要用于非交互式模式。 -d SEC:间隔SEC秒显示一次。
-p PID:监控的进程pid。接进程号,监视指定进程,只会输出该进程的统计信息。
-u USER:监控的进程用户。
-k 使用千字节而不是人类友好单
iotop快捷键
左右箭头:改变排序方式,默认是按IO排序。 r:改变排序顺序。反向排序 o:只显示有IO输出的进程。 p:进程/线程的显示方式的切换。 a:显示累积使用量。 q:退出。
iodump
iodump -p sda5 -t 10
打印sda5相关的io 并执行10秒
https://gitee.com/anolis/iodump#iops-dump使用手册
sar查看历史
今天磁盘IO
sar -dp
sar -n DEV 1
sar -n EDEV 1
看2号
sar -dp -f /var/log/sa/sa02
await表示平均每次设备I/O操作的等待时间(以毫秒为单位)。
svctm表示平均每次设备I/O操作的服务时间(以毫秒为单位)。
%util表示一秒中有百分之几的时间用于I/O操作。
如果svctm的值与await很接近,表示几乎没有I/O等待,磁盘性能很好,如果await的值远高于svctm的值,则表示I/O队列等待太长,系统上运行的应用程序将变慢。
如果%util接近100%,表示磁盘产生的I/O请求太多,I/O系统已经满负荷的在工作,该磁盘可能存在瓶颈。