テスト目的でNVMeドライブに、、、CFQ
およびdeadline
を使用したいと思います。noop
可能ですか?
"scsi_mod.use_blk_mq=1"
grubブートに追加して、SATA SSDでblk-mqを使用できます(参照:BFQスケジューラを有効にして使用する方法は?)。
ただし、NVMeドライブが非blk-mqスケジューラを使用できるように、反対の操作を実行する方法はまだ見つかりませんでした。
答え1
/dev/sda <-- SCSI デバイス
/dev/nvme0n1 <-- NVMe デバイス
NVMeドライバはカーネルバージョン3.19以降のblk-mqをサポートしています。 insmodパラメータまたはgrubのカーネルブートオプションを使用してblk-mqを終了することは許可されていません。
$ modinfo -p nvme
use_threaded_interrupts: (int)
use_cmb_sqes:use controller's memory buffer for I/O SQes (bool)
max_host_mem_size_mb:Maximum Host Memory Buffer (HMB) size per controller (in MiB) (uint)
sgl_threshold:Use SGLs when average request segment size is larger or equal to this size. Use 0 to disable SGLs. (uint)
io_queue_depth:set io queue depth, should >= 2
古いnvmeドライバをダウンロードしてカーネルモジュールを再コンパイルできます。http://git.infradead.org/users/willy/linux-nvme.gitblk-mqを無効にしたい場合。しかし、これはいいえたとえば、CFQ を使用できます。これ3.19の関連変更NVMeドライバは、以前に「内部的にキューロジックを[実装しました」と説明した場合、単一のキューブロック層を使用しませんでした。Linuxmdraid
デバイスなどのブロックデバイスの他の例があります。
以下のソースは当時正確であり、いくつかの有用な注意事項とリンクが含まれています。ただし、BFQ(BFQはLinux 4.12の一部として許可されています)を含むblk-mq IOスケジューラが導入される前に作成されたため、廃止されました。
https://www.thomas-krenn.com/en/wiki/Linux_Multi-Queue_Block_IO_Queueing_Mechanism_(blk-mq)
Linuxストレージマップ:https://www.thomas-krenn.com。
https://www.thomas-krenn.com/de/wikiDE/images/d/da/Linux-io-stack-diagram_v1.0.png