https://access.redhat.com/solutions/3429731
Unable to change queue parameter for nr_requests on nvme device
SOLUTION 已验证 - 已更新 2018年九月25日01:40 -
环境
- Red Hat Enterprise Linux 4
- Red Hat Enterprise Linux 5
- Red Hat Enterprise Linux 6
- Red Hat Enterprise Linux 7
- Intel PCIe Data Center (DC) SSD NVME controller
问题
-
When changing the parameter of
/sys/block/nvme1/queue/nr_requestsfrom 128 to 512 the system outputs errors like:# echo 512 > /sys/block/nvme1/queue/nr_requests -bash: echo: write error: Invalid argument
决议
As nvme devices do not use the regular IO scheduler mechanism used by sd devices, the nr_request parameter is not applicable to nvme stack. The IO handling mechanism in nvme uses blk-mq.
根源
IO scheduler is currently not supported in NVMe.
nr_requests specifies the maximum number of read and write requests that can be queued at one time. The default value is 128, which means that 128 read requests and 128 write requests can be queued before the next process to request a read or write is put to sleep.
NVM Express is based on a paired Submission and Completion Queue mechanism. Commands are placed by host software into the Submission Queue. Completions are placed into an associated Completion Queue by the controller.

本文探讨了在Red Hat Enterprise Linux系统中,NVMe设备的IO调度机制与传统sd设备的区别。指出NVMe设备不适用nr_requests参数,因为它们采用的是基于blk-mq的IO处理机制,而非传统的IO调度器。

被折叠的 条评论
为什么被折叠?



