linux 磁盘IO性能状态监控分析命令

top:

top - 15:12:56 up 64 days, 21:18,  1 user,  load average: 3.88, 7.20, 8.13
Tasks: 526 total,   1 running, 525 sleeping,   0 stopped,   0 zombie
%Cpu(s): 25.4 us,  0.5 sy,  0.0 ni, 74.1 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

具体的参数解释如下:

Tasks: 526 total 进程总数:

1 running 正在运行的进程数

525 sleeping 睡眠的进程数

0 stopped 停止的进程数

0 zombie 僵尸进程数

Cpu(s):

25.4% us 用户空间占用CPU百分比

0.5% sy 内核空间占用CPU百分比

0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比

74.1% id 空闲CPU百分比

0.0% wa 等待输入输出的CPU时间百分比

0.0% wa 的百分比可以大致的体现出当前的磁盘io请求是否频繁。如果 wa的数量比较大,说明等待输入输出的的io比较多。

vmstat:

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
44  0 2637244 1792992      0 22761468    0    0    29    31    0    0  4  1 95  0  0

vmstat参数解释:

Procs

r: 等待运行的进程数 b: 处在非中断睡眠状态的进程数 w: 被交换出去的可运行的进程数。此数由 linux 计算得出,但 linux 并不耗尽交换空间

Memory

swpd: 虚拟内存使用情况,单位:KB

free: 空闲的内存,单位KB

buff: 被用来做为缓存的内存数,单位:KB

Swap

si: 从磁盘交换到内存的交换页数量,单位:KB/秒

so: 从内存交换到磁盘的交换页数量,单位:KB/秒

IO

bi: 发送到块设备的块数,单位:块/秒

bo: 从块设备接收到的块数,单位:块/秒

System

in: 每秒的中断数,包括时钟中断

cs: 每秒的环境(上下文)切换次数

CPU

按 CPU 的总使用百分比来显示

us: CPU 使用时间

sy: CPU 系统使用时间

id: 闲置时间

   wa 等待IO时间 Wa过高时,说明io等待比较严重,这可能是由于磁盘大量随机访问造成的,也有可能是磁盘的带宽出现瓶颈。

vmstat -d:

可以显示详细磁盘信息

disk- ------------reads------------ ------------writes----------- -----IO------
       total merged sectors      ms  total merged sectors      ms    cur    sec
sda   51544212 4376046 15326237580 1528893285 77378992 6087788 16849888943 1237001225      0 151573
sr0       18      0    2056      72      0      0       0       0      0      0
dm-0  359607      0 17168007 1936150 10555541      0 195526291 49722767      0  14768
dm-1  1377643      0 11029344 7709149 2299406      0 18395248 25937000      0    904
dm-2  54342484      0 15297982937 2134548820 70611793      0 16635742795 1265693658      0 140203

total: 总的成功读写次数

sectors: 成功读写的扇区

ms: 读写花费的毫秒数

merged:表示一次来自于合并的写/读请求,一般系统会把多个连接/邻近的读/写请求合并到一起来操作.

vmstat 当然也可以作为 IO,cpu,内存性能瓶颈的分析

iostat:

Linux 3.10.0-957.10.1.el7.x86_64 (master) 05/30/2019 _x86_64_(48 CPU)
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           3.98    0.00    0.63    0.08    0.00   95.31
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              22.99      1366.56      1502.50 7663119794 8425406616
scd0              0.00         0.00         0.00       1028          0
 

avg-cpu 总体cpu使用情况统计信息,对于多核cpu,这里为所有cpu的平均值

Device 各磁盘设备的IO统计信息

%user CPU在用户态执行进程的时间百分比。

%nice CPU在用户态模式下,用于nice操作,所占用CPU总时间的百分比

%system CPU处在内核态执行进程的时间百分比

%iowait CPU用于等待I/O操作占用CPU总时间的百分比

%steal 管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟CPU的百分比

%idle CPU空闲时间百分比

tps 每秒向磁盘设备请求数据的次数,包括读、写请求,为rtps与wtps的和。出于效率考虑,每一次IO下发后并不是立即处理请求,而是将请求合并(merge),这里tps指请求合并后的请求计数。

Blk_read/s 每秒读取的数据块。块相当于内核2.4或更高版本的扇区,因此大小为512字节。对于较老的内核,块的大小是不确定的

Blk_wrtn/s 每秒写入的数据块.

Blk_read 取样时间间隔内读扇区总数量

Blk_wrtn 取样时间间隔内写扇区总数量

  1. 若 %iowait 的值过高,表示硬盘存在I/O瓶颈

  2. 若 %idle 的值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量

  3. 若 %idle 的值持续低于1,则系统的CPU处理能力相对较低,表明系统中最需要解决的资源是 CPU

可以使用iostat -c选项单独显示avg-cpu部分的结果,使用iostat -d选项单独显示Device部分的信息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值