这里为您整理从简单到深入的各种方法,并解释关键指标的含义。

这些工具通常需要预先安装(如sysstat 包提供了iostat、pidstat 等),适用于大多数 Linux 发行版。
1.iostat - 最常用的磁盘 I/O 统计工具
安装: (如果未安装)
For Ubuntu/Debian sudo apt-get install sysstat For CentOS/RHEL/Fedora sudo yum install sysstat # 或 sudo dnf install sysstat
使用:
间隔2秒刷新显示一次,共显示5次 iostat -dx 2 5
-d 显示设备(磁盘)使用状态。

-x 显示扩展的详细信息(这是关键)。
2 5 每2秒刷新一次,总共刷新5次后退出,如果只想要持续实时刷新,使用iostat -dx 2。
关键指标解读:
Device: 磁盘设备名(如sda,vda,nvme0n1)。
r/s,w/s: 每秒的读/写请求数量(合并后的)。

rkB/s,wkB/s: 每秒读/写的数据量(以KB为单位)。
await (非常重要): 平均每次 I/O 操作的等待时间(毫秒)。包括队列等待时间和服务时间,如果这个值很高(超过 10ms 对于 SSD 或 几十ms 对于机械硬盘),通常表示磁盘设备饱和或有瓶颈。
%util (非常重要): 磁盘处理 I/O 的时间百分比。表示设备的繁忙程度,如果持续接近 100%,说明磁盘 I/O 已经饱和。
svctm: 平均每次 I/O 操作的服务时间(毫秒),这个指标未来可能会被移除,通常参考await 更有意义。
aqu-sz: 平均请求队列长度,队列越长,说明堵塞越严重。
2.iotop - 类似 top 的按进程排序工具
可以像top 命令一样,实时查看哪些进程的 I/O 占用最高。
安装:
For Ubuntu/Debian sudo apt-get install iotop For CentOS/RHEL sudo yum install iotop
使用:
sudo iotop
  必须使用sudo 权限运行。
输出分为两大部分上半部分是系统总的磁盘读写速率,下半部分是每个进程的详细 I/O 情况。
  你可以按o 键只显示正在产生 I/O 的进程。
  按左右箭头键可以排序,例如按IO> 可以根据读排序,按IO< 可以根据写排序。
关键指标:
IO>: 进程的读取速率(KB/s)
IO<: 进程的写入速率(KB/s)
SWAPIN: 进程进行 Swap 交换的百分比
DISK READ,DISK WRITE: 进程的实际磁盘读写速率
3.pidstat - 查看进程的 I/O 统计
pidstat 是sysstat 工具包的一部分,可以按进程报告 I/O 使用情况。
使用:
间隔2秒报告一次所有进程的I/O情况 pidstat -d 2
关键指标:
kB_rd/s: 进程每秒从磁盘读取的数据量(KB)。
kB_wr/s: 进程每秒向磁盘写入的数据量(KB)。
kB_ccwr/s: 进程被取消的写入磁盘数据量(KB),通常发生在任务被截断时。
Linux 的/proc 目录提供了大量内核和进程的信息。
查看磁盘分区信息
    cat /proc/partitions查看磁盘 I/O 信息
    cat /proc/diskstats    这里的输出字段与iostat 的数据源相同,但以原始数值呈现,需要自己计算差值。
2.vmstat - 查看系统整体状态
vmstat 可以报告关于进程、内存、分页、块 I/O、陷阱和 CPU 活动的信息。
使用:
vmstat 2
2 表示每2秒刷新一次。
关注 I/O 相关的两列:
bi: 每秒从块设备接收的块数(块/秒,读操作)。
bo: 每秒发送到块设备的块数(块/秒,写操作)。
1.atop - 功能强大的综合监控工具
atop 是一个非常强大的终端监控工具,可以记录历史数据,并能回放。
安装:
Ubuntu/Debian sudo apt-get install atop CentOS/RHEL sudo yum install atop
使用:
sudo atop
运行后,按d 键可以切换到磁盘 I/O 视图,清晰地展示每个磁盘和每个进程的 I/O 负载。
2.sar - 系统活动报告(历史数据分析)
sar 也是sysstat 包的一部分,它用于查看历史 I/O 数据,默认情况下,sysstat 会每10分钟收集一次系统指标。
查看今天的磁盘I/O历史:
sar -d
查看指定日期的历史数据(10号):
sar -d -f /var/log/sa/sa10 # 查看10号的数据
3. 图形化工具 (Grafana + Prometheus / Netdata)
对于生产环境,建议使用图形化监控方案,它们能提供历史趋势和警报。
Prometheus + Node Exporter + Grafana: industry standard,Node Exporter 采集服务器指标(包括 I/O),Prometheus 存储,Grafana 做漂亮的图表展示。
Netdata: 一个开源的实时性能和健康监控工具,安装简单,提供极其详细和交互式的 Web 界面,对单机监控非常友好。
1、第一步:快速总体评估
    *   运行iostat -dx 2,查看%util 和await。
    *   如果%util 持续接近 100% 且await 很高,说明磁盘存在瓶颈。
2、第二步:定位罪魁祸首进程
    *   运行sudo iotop 或pidstat -d 2,找出是哪个(哪些)进程在疯狂读写磁盘。
3、第三步:深入分析
    *   如果找到了高 I/O 进程,结合lsof -p <PID> 或strace -p <PID> 等命令,查看该进程正在读写哪些文件。
    *   使用sar 查看历史趋势,判断问题是持续性的还是偶发性的。
4、长期监控
* 搭建 Prometheus/Grafana 或 Netdata,以便持续监控和及时告警。
高 I/O 等待(await)和高设备使用率(%util)是判断 I/O 瓶颈的最关键指标。
文章摘自:https://idc.huochengrm.cn/fwq/15725.html
评论
愈芬芬
回复查看服务器的IO性能可以通过使用系统监控工具如iostat、vmstat、iotop等,分析磁盘读写速度、CPU使用率、内存使用情况等关键指标,以评估服务器性能。
剑彭丹
回复查看服务器IO性能有多种方法,可结合使用系统工具与专用监控软件,如利用iostat跟踪磁盘读写速度、通过vmstat监测I/O请求数量及响应时间等;还可采用专业的性能测试与分析平台来全面评估服务器的整体表现和优化建议方案进行精准把控和管理优化工作提升效率降低成本风险隐患保障企业数据安全稳定运行发展态势良好趋势状态呈现积极向好的方向稳步前进实现可持续发展目标愿景规划蓝图构建重要基础支撑作用之一 。
卯婉静
回复查看服务器IO性能,可使用命令如iostat、vmstat、iotop等,结合图形化工具如Grafana进行监控。