Linux IO分析

一、iostat命令

1.1 安装iostat命令,用于监控系统io的负载情况,安装sysstat工具包

yum install sysstat -y

1.2 默认命令输出,如果iostat不带任何参数或选项,iostat会打印一个自启动以来的带选项-c和-d的汇总报告

先查看avg-cpu看瓶颈是否出现在IO层面

# iostat 
Linux 3.10.0-1160.53.1.el7.x86_64 (gitlab)      04/05/2022      _x86_64_        (8 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.32    0.00    0.70    1.39    0.14   96.45

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda              39.95         0.53       224.74    2115465  897466244
vdb               0.00         0.00         0.01       4848      42924
dm-0             0.00         0.00         0.00          0          0
#%user        用户模式下所花费的时间  <60%
#%nice         用户进程改变过优先级的进程占用CPU时间 
#%system     内核进程所花费的CPU时间  sys+user  <80%
#%iowait       IO等待所占用的CPU时间(重要)  <30% 
#%steal         丢失时间占用CPU
#%idle          CPU处在中断(空闲)状态的时间
一般来说%idle持续游走在20%以下,瓶颈出现在CPU的性能层面。
%iowait高而%idle在70%以上,瓶颈出现在I/O设备层面。

Device:        设备名dm是disk mapper的缩写,可以在/dev/mapper下查对应谁,参数-N 可以将dm输换成相应的LVM名
tps            设备每秒接受的IO传输请求tps=transfers per second 【每秒处理事务数IOPS】
kB_read/s      设备每秒读取的数据量(KB)参数-m 可以转换成MB
kB_wrtn/s      设备每秒写入的数据量(KB)
kB_read        设备读取的总数据量
kB_wrtn        设备写入的总数据量
单纯iostat输出的值并不代表当前I/O状态,而是系统
当前状态请用iostat 1 2 输出的第2组值来获得

1.3 相关参数

-c      显示CPU报告
-d      显示磁盘报告
-k      使用KB代替(512B)块数目
-m      使用MB代替(512B)块数目
-p      包括单个分区的统计信息
-t      时间戳输出
-x      扩展信息统计
-z      不显示空活动汇总
-N 显示磁盘阵列(LVM) 信息

1.4 常用命令参数

iostat -d -x -p -N 

rrqm/s        每秒合并放入驱动请求队列的读请求数
wrqm/s        每秒合并放入驱动请求队列的写请求数
r/s           每秒发给磁盘设备的读请求数    # 每秒完成读写I/O设备次数(顾客总数)
w/s           每秒发给磁盘设备的写请求数    # 每秒完成读写I/O设备次数(顾客总数)
rkB/s         每秒从磁盘设备读取的KB数
wkB/s         每秒从磁盘设备写入的KB数
avgrq-sz      平均请求大小,单位为扇区(512B)    # 平均I/O数据大小,平均每人所买的东西多少
avgqu-sz      在驱动请求队列和在设备中活跃的平均请求数    # 单位时间里平均排队等待人的个数
await         平均I/O响应时间,包括在驱动请求队列里等待和设备的I/O响应时间(ms)   # 每人买完包子平均等待时间
r_await       和await一样,不过只针对读(ms) 
w_await       和await一样,不过只针对写(ms) 
svctm        (推断)磁盘设备的I/O平均响应时间(ms)
%util         设备忙处理I/O请求的百分比(使用率)    # 单位时间内包子铺有人买包子的时间比例

输出性能里最重要的指标是await。如果应用程序和文件系统使用了降低写延时(例如,写空)的方法,w_await可能不那么重要,而你可以主要关注 r_wait

二、iotop

安装命令

yum install iotop -y

常用参数

-o:只显示有io操作的进程
-b:批量显示,无交互,主要用作记录到文件。
-n NUM:显示NUM次,主要用于非交互式模式。
-d SEC:间隔SEC秒显示一次。
-p PID:监控的进程pid。
-u USER:监控的进程用户

 

posted @ 2022-04-05 15:20  林中龙虾  阅读(144)  评论(0编辑  收藏  举报