Optimizing Storage Performance for 4–5 Million IOPs
summary
Reworks the lpfc driver and firmware/driver balance to hit multi‑million IOPs by adding per-core completion queues and work queues, a shared overflow exchange pool with steal-on-demand, and deferred threaded interrupt handlers that process completions for up to ~1–1.5 ms. Measured results: SCSI single‑port rises from ~1.5M to 3.75M IOPS and two‑port 2M→4.5M; NVMe reaches ~5.2–5.3M, aggregate ~7M after hardware tuning; latency ~10.5 µs by FIO. Kernel queue‑depth retry bugs and cross‑socket contention remain to fix.
AI-written summary · about
chapters (4)
related talks
50mOptimizing for NVMe Drives: The 10 Microsecond Challenge
19mI/O Passthru: Upstreaming a flexible and efficient I/O Path in Linux
17mHow advancements in storage are triggering innovations in open-source and vice-versa
42mUnderstanding the Linux Block Layer-From Single Queue to Multi-Queue Architecture
15mOPIMQ: Order Preserving IO stack for Multi-Queue Block Device
38mMaximizing Heterogeneous Memory Bandwidth in Multi-Socket Systems
45mLinux Storage Stack Explained
41mLinux Systems Performance
