【速查】Linux 磁盘IO性能快速检测 - linux运维
【速查】Linux 磁盘IO性能快速检测 - linux运维

Linux磁盘IO性能快速检测

老手群里经常有人问“机器IO咋样”,其实就几个命令的事。别整那些花里胡哨的,直接上干货。

【速查】Linux 磁盘IO性能快速检测 - linux运维

1. 实时监控:iostat

最常用的工具,没有之一。

# 查看所有磁盘IO情况,每2秒刷新一次
iostat -x 2

# 只看某个盘,比如sda
iostat -x sda 2

重点关注这几个指标:
%util:磁盘利用率,超过80%说明IO瓶颈了
await:IO请求平均等待时间(ms),SSD一般<5ms,机械盘<20ms
svctm:IO服务时间,比await小很多说明排队严重
r/s w/s:每秒读写次数,机械盘通常不超过200

2. 定位IO高进程:iotop

知道磁盘忙,谁干的?iotop直接看。

# 安装
yum install iotop -y  # CentOS
apt install iotop -y  # Ubuntu

# 运行,按O排序,按P只看进程
iotop -oP

看到哪个进程读写高,直接kill -9或者查日志。注意iotop需要root权限。

3. 磁盘压力测试:fio

新机器到手,或者怀疑磁盘性能,直接压一把。

# 随机读测试,4K块大小,队列深度32
fio --name=randread --ioengine=libaio --iodepth=32 --rw=randread --bs=4k --direct=1 --size=1G --numjobs=1 --runtime=30

# 随机写测试
fio --name=randwrite --ioengine=libaio --iodepth=32 --rw=randwrite --bs=4k --direct=1 --size=1G --numjobs=1 --runtime=30

看结果里的IOPSBW(带宽)。SSD随机读通常几万IOPS,机械盘几百。

4. 快速判断磁盘类型

不知道是SSD还是机械盘?

# 看旋转标志
cat /sys/block/sda/queue/rotational
# 1=机械盘,0=SSD

# 或者看型号
lsblk -d -o name,rota,model

5. 排查IO瓶颈三板斧

第一斧:看util

iostat -x 1 | grep -E "Device|sda"

如果%util接近100%,磁盘饱和。

第二斧:看await

iostat -x 1 | awk 'NR>2 {print $1, $10}'

await大于100ms,磁盘性能严重不足。

第三斧:看排队

iostat -x 1 | awk 'NR>2 {print $1, $4, $9}'

avgqu-sz(平均队列长度)大于2,说明IO请求在排队。

6. 快速修复

  • util高,await低:IOPS瓶颈,换SSD或增加磁盘
  • util高,await高:磁盘性能不够,换更快的盘
  • util低,await高:可能是硬件问题或驱动bug,检查磁盘健康状态
  • 随机读写慢:检查是否有大量小文件操作,考虑用tmpfs或调整文件系统参数
# 查看磁盘SMART信息
smartctl -a /dev/sda | grep -E "Reallocated|Pending|Uncorrect"
# 如果Reallocated_Sector_Ct > 0,赶紧备份数据

总结

别管什么玄学IO问题,就这三步:
1. iostat -x看整体
2. iotop -oP抓元凶
3. fio压测确认

搞定收工。

📚 推荐资源

– 部分链接含推广返佣 –

🪐 加入「渗透实战安全圈」

每天分享渗透测试实战、挖洞技巧、漏洞分析、工具推荐

知识星球

https://t.zsxq.com/40MyD

💻 安全运维 / Linux运维 / 渗透测试 技术支持
业务需求可联系博客作者

By admin

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注