磁盘I/O性能已达瓶颈时,可通过iostat查设备负载、iotop定位高IO进程、dd测顺序吞吐、fio做多模式压力测试、系统监视器看IO趋势。

如果您在统信UOS系统中观察到系统响应迟缓、磁盘指示灯持续高亮或应用读写操作明显卡顿,则可能是磁盘I/O性能已达瓶颈。以下是监控与评估磁盘IO占用情况的多种方法:
一、使用iostat命令实时查看磁盘IO统计
iostat是sysstat套件中的核心工具,直接读取/proc/diskstats数据,可输出每秒I/O请求数、吞吐量、平均等待时间及设备利用率等关键指标,适用于快速定位高负载磁盘。
1、打开终端(Ctrl + Alt + T)。
2、执行命令安装sysstat(若未预装):sudo apt install sysstat。
3、运行基础监控命令:iostat -d -x -k 1,其中-d表示仅显示设备,-x启用扩展统计,-k以KB为单位,1表示每秒刷新一次。
4、重点关注输出中的%util列:若某设备该值持续高于80%,表明磁盘处于高负荷状态;同时比对await与svctm,若await显著大于svctm,说明I/O队列存在积压。
二、使用iotop监控进程级IO占用
iotop基于Linux内核cgroup和/proc接口,可按线程或进程维度实时显示磁盘读写速率,帮助识别具体是哪个程序正在大量消耗IO资源。
1、在终端中执行安装命令:sudo apt install iotop。
2、以root权限运行:sudo iotop -o,-o参数仅显示当前有I/O活动的进程/线程。
3、观察“DISK READ”和“DISK WRITE”两列数值,单位为KB/s或MB/s,数值越高的进程即为IO主要消耗者。
4、按字母P键可切换按IO百分比排序,按R键可反转排序顺序。
三、使用dd命令进行简易IO吞吐量测试
dd命令通过绕过页缓存(direct I/O)方式对裸设备或文件执行顺序读写,可粗略估算磁盘原始吞吐能力,适用于无第三方工具环境下的快速验证。
1、测试写入性能:执行dd if=/dev/zero of=/tmp/testwrite bs=1M count=1024 oflag=direct,生成1GB测试文件并强制直写磁盘。
2、测试读取性能:先同步缓存(sync),再执行dd if=/tmp/testwrite of=/dev/null bs=1M iflag=direct。
3、观察命令结束时输出的bytes/sec数值,该值即为实测顺序读写带宽,低于50MB/s(HDD)或300MB/s(SATA SSD)需进一步排查硬件或驱动问题。
四、使用fio工具执行多模式IO压力测试
fio支持随机/顺序、读/写、不同块大小及并发度的组合测试,能全面反映磁盘在真实业务负载下的IOPS、延迟与吞吐表现,适合深度性能评估场景。
1、安装fio:sudo apt install fio。
2、执行顺序写测试:fio --name=seqwrite --ioengine=libaio --rw=write --bs=1M --size=1G --runtime=60 --time_based --filename=/tmp/fiotest --direct=1。
3、执行随机读测试:fio --name=randread --ioengine=libaio --rw=randread --bs=4k --size=1G --runtime=60 --time_based --filename=/tmp/fiotest --direct=1。
4、查看输出中IOPS、BW(带宽)、lat(延迟)三项核心指标,确认是否符合设备标称性能。
五、使用系统监视器图形化查看IO趋势
系统监视器集成实时I/O吞吐与设备使用率曲线图,支持挂载点维度的容量与读写速率双轨监控,适用于日常感知与异常初筛。
1、按下Ctrl + Shift + Esc快捷键,直接启动系统监视器。
2、切换至“资源”选项卡,查看“磁盘读取”与“磁盘写入”曲线图,单位为KB/s或MB/s。
3、在“设备”下拉菜单中选择目标磁盘(如/dev/sda、/dev/nvme0n1),观察对应读写速率峰值与持续时间。
4、当某设备读写速率长期高于20 MB/s(HDD)或100 MB/s(SSD)且伴随系统卡顿时,应结合iotop进一步定位进程。










