磁盘 I/O 性能诊断与优化

前言 磁盘 I/O 往往是系统性能链条中最慢的一环。一次机械磁盘寻道约 10ms,而内存访问仅约 100ns——两者相差 10 万倍。当业务出现延迟抖动、响应变慢,排查方向总会指向 I/O 子系统。从指标体系出发,结合工具实战与生产案例,建立一套可复用的 I/O 诊断方法论。 I/O 性能指标体系 在动手之前,必须搞清楚四个核心指标的含义及其相互关系。 指标 单位 含义 典型参考值 IOPS 次/秒 每秒完成的 I/O 读写次数 HDD ~100,SATA SSD ~10 万,NVMe SSD ~50 万+ 吞吐量 MB/s 每秒传输的数据量 HDD ~150 MB/s,SATA SSD ~550 MB/s,NVMe SSD ~3000 MB/s+ 延迟 ms/μs 单次 I/O 从提交到完成的耗时 HDD 5-15ms,SSD 0.1-1ms,NVMe 0.02-0.1ms 队列深度 个 等待处理的 I/O 请求数 建议值 NVMe 32-256,SSD 8-32 这四个指标之间存在关键约束关系: 小块随机读写场景下,瓶颈是 IOPS(如数据库 OLTP 4KB 随机写) 大块顺序读写场景下,瓶颈是吞吐量(如日志追加、视频流媒体) 延迟是最终用户感知的指标,即使 IOPS 和吞吐量充足,单次延迟过高仍会导致卡顿 队列深度提升能增加并发,但也意味着单请求等待时间变长 一个重要认知:IOPS × 块大小 ≈ 吞吐量。例如 4KB 块、100 IOPS,吞吐量约 0....

March 27, 2024 · 4 分钟 · 841 字 · 徐保金