知识卡片

用户态驱动提速的真相是省CPU

专业/工作 · 1118.b

内容

对比用户态和内核态NVME驱动的实验揭示一个容易被误解的事实:无论驱动跑在用户态还是内核态,都不可能超过存储设备物理上限的IOPS——内核态驱动配足够多CPU核心一样能跑满硬件上限。真正的差距在于达到同样性能所消耗的CPU:用户态驱动没有用户态/内核态切换、没有内核长调用栈、没有块设备层锁竞争,单核就能跑满一块高速SSD的物理极限,而内核态驱动跑满同样IOPS可能需要9倍CPU核心。用户态驱动带来的不是”更快”,而是”用更少的CPU买到同样的性能”——这与[[用户态驱动的迭代自由度]]强调的设计自由度是同一现象的另一面。

参考来源

《深入浅出DPDK》第15章《基于DPDK的存储软件优化》