Selecting the right Linux I/O scheduler for a host equipped with NVMe SSD?

做~自己de王妃 提交于 2019-12-02 22:20:25

"none" (aka "noop") is the correct scheduler to use for this device.

I/O schedulers are primarily useful for slower storage devices with limited queueing (e.g, single mechanical hard drives) — the purpose of an I/O scheduler is to reorder I/O requests to get more important ones serviced earlier. For a device with a very large internal queue, and very fast service (like a PCIe SSD!), an I/O scheduler won't do you any good; you're better off just submitting all requests to the device immediately.

The answer given by Sanne in the comments is correct:

"The reason is that NVMe bypasses the scheduler. You're not using the "noop" implementation: you're not using a scheduler."

noop is not the same as none, noop still performs block merging (unless you disable it with nomerges)

If you use an nvme device, or if you enable "scsi_mod.use_blk_mq=Y" at compile time or boot time, then you bypass the traditional request queue and its associated schedulers.

Schedulers for blk-mq might be developed in the future.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!