IOスケジューラからscsi低レベルドライバにIOを制限する方法

IOスケジューラからscsi低レベルドライバにIOを制限する方法

IOスケジューラのデフォルトのキュー深度は128です。ブロックデバイスのキュー深度はデフォルトで32です。 IOがバッファリングされる場所。 IO スケジューラがすべての IO を scsi 下位レベルのドライバに送信し、ドライバが IO をバッファリングするかどうか。または他の場所で制限があります。

ベストアンサー1

IOスケジューラできる「作業を節約しない」です。つまり、IOをすぐに送信しないことを選択できます。 「idling」というIOスケジューリング技術があります。これは、回転ディスク(SSDではないなど)に特に便利です。 CFQ および BFQ スケジューラはどちらもアイドル状態を使用します。


また、write()呼び出しはページキャッシュにバッファリングされ、次にIO要求として書き換えられることに注意してください。ブロックデバイスキューの下にはデバイス書き込みキャッシュがあります。それはすべて非常に複雑で、あらゆる種類の奇妙な動作につながります。 :-).

すべてのブロックデバイスのデフォルトキュー深度が32であるわけではありません。これはSATA NCQの一般的なキュー深度にすぎません。 SCSI TCQデバイスは、より多くを可能にします。少なくともこれが標準です。 (NVMeデバイスは間違いなく多くを可能にし、複数の並列キューを持つこともできます)。

おすすめ記事