内核的IO栈由于存在context switch、data copy、interrupt、resource synchronization等操作因此会产生大量存储开销,因此如何结果这个性能瓶颈?出现了高性能的工具库(SPDK)。
- 那么SPDK主要是问了解决什么问题呢?减少存储开销。
- SPDK怎么解决的? 把driver移动到user space,并且用轮询(polling)取代中断(interrupt),同时提供lockless的资源访问。
- 相比较于原始的Kernel NVMe driver的性能有多少提升?6X到10X的性能提升。
- 同时SPDK NVMe-oF target的方法比基于内核的NVMe-oF target在性能上提升了10X。
对于存储服务质量来说,主要是取决于软件和硬件两个方面。但是在早期大多数人都在关注的是硬件性能的提升,当然硬件确实在早期有很大的提升空间(符合摩尔定律:微处理器的性能每隔18个月提高一倍,而价格下降一半)。渐渐的硬件已经做到足够精小知道快存储设备驱动(NVMe SSD),开始将性能转战到软件的提升。软件逐渐变成了影响存储服务质量的瓶颈。