linux系统解决磁盘IO使用率很高

本文介绍了如何使用Linux命令行工具监控和诊断磁盘IO性能问题。通过top命令查看wa指标,当该值高时可能表示磁盘IO负载大。iostat和sar-d-p1100能进一步分析I/O请求和负载,其中%util接近100%可能表示磁盘瓶颈。pidstat和lsof可帮助定位占用资源的进程,iotop则提供类似top的磁盘活动视图。这些工具对于排查系统性能问题至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、查询

1.1,top 命令 查看wa 指标

top 命令通过查看 CPU 的 wa% 值来判断当前磁盘 IO 性能。如果这个数值过大,很可能是磁盘 IO 过高。

注意:如果 cpu 当前使用率已经很高,并且同时 IO 操作很多,wa 值也不一定很高。它指的是当 CPU 空闲时,磁盘 IO 使用情况。

1.2,用iostat查看磁盘io 是否读写负载很高

使用命令:iostat -x 1 10

如果 iostat 没有,要 yum install sysstat安装这个包

第一眼看下图红框处指标,如果%util接近100%,表明I/O请求太多,I/O系统已经满负荷,磁盘可能存在瓶颈,一般%util大于70%,I/O压力就比较大,读取速度有较多的wait,然后再看其他的参数,

指标详情:

rrqm/s:每秒进行merge的读操作数目。即delta(rmerge)/s 
wrqm/s:每秒进行merge的写操作数目。即delta(wmerge)/s 
r/s:每秒完成的读I/O设备次数。即delta(rio)/s 
w/s:每秒完成的写I/0设备次数。即delta(wio)/s 
rsec/s:每秒读扇区数。即delta(rsect)/s 
wsec/s:每秒写扇区数。即delta(wsect)/s 
rKB/s:每秒读K字节数。是rsec/s的一半,因为每扇区大小为512字节 

wKB/s:每秒写K字节数。是wsec/s的一半 
avgrq-sz:平均每次设备I/O操作的数据大小(扇区)。即delta(rsect+wsect)/delta(rio+wio) 
avgqu-sz:平均I/O队列长度。即delta(aveq)/s/1000(因为aveq的单位为毫秒) 
await:平均每次设备I/O操作的等待时间(毫秒)。即delta(ruse+wuse)/delta(rio+wio) 
svctm:平均每次设备I/O操作的服务时间(毫秒)。即delta(use)/delta(rio+wio) 
%util:一秒中有百分之多少的时间用于I/O操作,或者说一秒中有多少时间I/O队列是非空的

1.3 sar -d -p 1 100

和 iostat 类似的磁盘 IO 负载命令,sar -d -p 1 100 每 1秒 间隔采样 100 次

2. 用 pidstat 定位

2.1 pidstat -d 1

实时监控全部或指定进程占用系统资源的情况,pidstat -d 1 按照磁盘 IO 每秒刷新一次,显示各个进程的 IO 使用情况.

2.2 lsof -p pid

通过命令,找到问题进程正在读写的文件信息,并定位性能问题的根源,使用:

sync;time -p bash -c "(dd if=/dev/zero of=test bs=1M count=20000)"

3. 用 iotop 定位

iotop 用来监视磁盘 IO 使用状况,是一个类似 top 的工具,用来显示实时的磁盘活动。安装:

    Ubuntu
    sudo apt install iotop

    CentOS 
    sudo yum install iotop

iotop -o 只显示有 IO 操作的进程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值