← 中文资源

简体中文版本

I/O 密集型吞吐工作流

对 I/O 密集型负载通过提高并发、批量与异步 I/O 提升吞吐,而非增加 CPU。

阅读英文原文

目标

I/O 密集型工作应通过并发与批量提升吞吐,而非堆 CPU。本工作流先确认瓶颈在 I/O 而非 CPU,再以异步或有界并发让 I/O 等待重叠,把小操作合并为更少的更大操作降低往返与系统调用,最后在依赖健康的前提下验证吞吐提升。

步骤要点

  1. 确认瓶颈在 I/O 而非 CPU。
  2. 引入异步或在安全上限内提高并发。
  3. 把小操作合并为更少更大操作。
  4. 在依赖健康前提下验证吞吐提升。
# measure I/O wait share
pidstat -p $(pgrep -f server) 1 5

验证

按顺序执行上述步骤后,逐项确认每个步骤的预期状态均已满足;只有全部预期状态成立,才认为本流程完成。若某一步未达到预期状态,应先按排错提示排查,不要跳过继续,以免掩盖问题。

排错提示

  • 给 I/O 密集加 CPU 是浪费。
  • 无界并发会打垮依赖。
  • 逐项调用会成倍放大开销。

适用边界

  • 优先异步 I/O。
  • 并发需设安全上限。