MD RAID-禁用 NCQ

MD RAID-禁用 NCQ

为什么建议在 MD RAID(mdadm)中禁用每个磁盘的 NCQ? echo 1 > /sys/block/sdX/device/queue_depth

我在许多有关 RAID 调整的文章中看到过这个技巧,但没有人解释原因。

答案1

感谢您的回答。

维基百科中提到“ NCQ can negatively interfere with the operating system's I/O scheduler, actually decreasing performance” 并引用了这篇文章 http://www.cs.albany.edu/~sdc/CSI500/Fal10/DiskArmSchedulingPapers/a2-yu.pdf

本文指出Under a random workload, the I/O scheduler should be disabled, that is, noop, and NCQ in charge of scheduling requests entirely; when under a sequential workload, an I/O scheduler should take full charge of scheduling them instead of NCQ. It implies that the type of information that can help scheduling decision can vary according to the workload type.

因此,这似乎是顺序工作负载下的问题,但不是在随机工作负载下的问题。

结论是In the long run, we suggest that a new SATA 2 specification should contain a well-defined interface to fully control NCQ mechanism.

但是这篇文章比较旧了(2010年3月),我不知道它是否已经解决了。

答案2

来自维基百科关于 NCQ 的文章

NCQ 会对操作系统的 I/O 调度程序产生负面影响,实际上会降低性能;[6] 这在实践中已经在使用 RAID-5 的 Linux 上观察到。[7] NCQ 中没有机制让主机为 I/O 指定任何类型的截止期限,比如可以忽略某个请求而处理其他请求的次数。

相关内容