Linux 系统中怎么排查大文件并发写入时的磁盘瓶颈问题

大静君_2574

大静君_2574

2026-10-01

896人浏览

原创

大文件并发写入导致磁盘瓶颈的典型表现是系统响应变慢、iowait飙升(如top中wa>60%)、写入延迟激增但cpu使用率低;排查需分四步:先用iostat -dx 1 5看%util≥95%、await远大于svctm、avgqu-sz>10及高w/s+wkb/s确认写饱和;再用iotop -op或pidstat -d 2 5定位高io进程;接着用lsof -p pid或ls -l /proc/pid/fd/查其写入的具体文件路径,重点关注/tmp、/var/log、/data等目录;最后结合avgrq-sz判断顺序写(>64kb)或伪随机写(4–16kb),并检查dirty_ratio参数是否引发写放大。

linux 系统中怎么排查大文件并发写入时的磁盘瓶颈问题

大文件并发写入时出现磁盘瓶颈,典型表现是系统响应变慢、iowait 飙高(比如 top 中 wa > 60%)、应用写入延迟激增,但 CPU 使用率并不高。排查重点不是“有没有写”,而是“谁在写、怎么写、写到哪、设备扛不扛得住”。下面分四步直击关键。

看整体磁盘压力:用 iostat 定性是否真饱和

执行 iostat -dx 1 5,重点关注这几列:

  • %util ≥ 95%:设备几乎持续忙于处理请求(注意:SSD/云盘下该值参考性下降,需结合 avgqu-sz 和 await)
  • await 远大于 svctm(例如 await=80ms,svctm=0.15ms):说明请求大量排队,不是磁盘处理慢,而是压得太满
  • avgqu-sz 持续 > 10(机械盘队列深度通常为 32,NVMe 可达数百):队列已堆积,是排队瓶颈的强信号
  • w/s 高 + wkB/s 高:确认是写密集型负载,而非读或混合

定位写入主力进程:用 pidstat 或 iotop 锁定源头

若环境有 iotop,直接运行:

Browser Setup (No-Root Linux)
Browser Setup (No-Root Linux)

在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...

下载
  • iotop -oP:只显示正在 IO 的进程(-o),且以进程为单位(-P),避免线程干扰
  • 关注 DISK WRITE 列,排序后看前 2–3 名是否为你的业务进程(如 java、python、mysqld)

若容器或精简系统无 iotop,用 pidstat:

  • pidstat -d 2 5:每 2 秒采样一次,输出各进程的读写 KB/s
  • 配合 ps -p PID -o comm=,cmd= 快速确认进程用途

查它在写什么文件:从进程找具体路径

拿到高 IO 进程 PID 后,查它打开的写入文件:

  • lsof -p PID | awk '$4 ~ /[0-9]+[uw]/ && $5 ~ /REG/ {print $9, $4}' | head -10:列出该进程打开的普通文件及其读写模式(w=写,u=读写)
  • ls -l /proc/PID/fd/ | grep -E '->.*\.log|->.*data|->/tmp':快速过滤日志、数据、临时目录类路径
  • 特别注意:/tmp、/var/log、/data、挂载点子目录——大文件写入常集中在这几处

判断写入模式与优化方向:顺序 or 随机?缓存是否被拖垮?

继续用 iostat 看请求特征:

  • iostat -x 1 3 | awk '/sda/ {print "rq-size:", $10, "await:", $11}'
  • avgrq-sz > 64KB → 大块顺序写(如 tar 归档、数据库 bulk insert),瓶颈大概率在带宽或后端存储吞吐
  • avgrq-sz ≈ 4KB–16KB → 实际是大量小写合并成大文件(如日志轮转、分片上传),本质仍是随机写压力,寻址开销大
  • 再看 cat /proc/sys/vm/dirty_ratio 和 dirty_background_ratio:若业务突发写入远超 dirty_background_ratio(默认 10%),内核会主动刷脏页,造成写放大——此时降低 dirty_ratio 反而可能加剧抖动,应优先控制应用写节奏

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

417

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

860

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2552

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

856

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

769

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

394

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2316

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

4252

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

687

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习