Linux3.19内核block层出现新变化,增加 multi-queue block layer

最近Linux的最新内核已经release到Linux-3.19-rc6,根据Linus的release note,大约再经过一次rc7版本就可以正式release了。Linux 3.19内核在block层的最大变化就是增加了一个multi-queue block layer,来更好的支持类似于NVME等支持multi-queue机制的设备。所谓的multi-queue机制就是在多核CPU的情况下,将不同的block层提交队列分配到不同的CPU核上,以更好的平衡IO的工作负载,大幅提高SSD等存储设备的IO效率。

技术分享

其实在Linux-3.13的kernel中就已经出现了对multi-queue设备的支持,只不过那时候还不是专门的multi-queue的block layer,而是单独使用在NVME设备的driver中。在3.19内核以后,multi-queue block layer将统一接管multi-queque的工作。而NVME设备的driver也相应的拿掉了这部分功能,转而通过调用multi-queue block layer的函数来实现multi-queue机制。而在3.19内核之后对SCSI-mq的支持将不在话下。

下图示意了Blk-mq的IO Submission机制。

技术分享

很对测试和研究表明,Blk-mq/SCSI-mq对存储设备的Performance将有很大的提升,想要更多的了解Blk-mq/SCSI-mq这篇文章,下图显示了加入了Blk-mq/SCSI-mq后Linux-SCSI Performance

技术分享

技术分享

具体的Linux-3.19的block driver updates可以参见本链接



郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。