Linux磁盘读写慢需四步排查:先用iostat确认硬盘负载,再用iotop定位高IO进程,接着用lsof和strace分析具体读写文件及系统调用,最后检查IO调度器匹配性与硬盘健康状态。

Linux磁盘读写慢,不能只盯着“换硬盘”或“加内存”,得先理清IO路径上的关键节点:是不是硬盘真忙?谁在猛写?写的是什么?调度策略配对了吗?硬件本身还健康吗?下面四步层层递进,帮你把问题从表象挖到根上。
别凭感觉判断“慢”,先看数据。运行 iostat -x 1,重点关注三列:
如果 %util 很低但 await 很高,可能是队列堆积或调度策略不匹配;如果 %util 高且 r/w 频繁,就要往下查是哪个进程在驱动这些IO。
用 iotop -o(只显示正在做IO的进程),按I/O%列排序,一眼就能揪出“IO大户”。重点关注:
确认PID后,别急着kill,先保留现场:记录时间点、命令行(ps -fp PID)、打开文件(下一步要用)。
拿到PID,执行 lsof -p PID | grep -E "(REG|DIR)",筛选出普通文件和目录。重点看:
再配合 strace -p PID -e trace=write,open,fsync 短时抓取系统调用,能看清是写小块还是大块、是否频繁fsync——这对后续调优(如调整innodb_flush_log_at_trx_commit或禁用atime)直接有用。
这一步分两线并行:
顺手还可调两个实用参数:
– 提高预读量(适合顺序读大文件):echo 8192 > /sys/block/sda/queue/read_ahead_kb;
– 增大队列深度(提升并发吞吐):echo 512 > /sys/block/sda/queue/nr_requests。
以上就是Linux磁盘读写慢怎么办_IO调优思路完整说明【教程】的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号