Closed. This question is off-topic。它当前不接受答案。
想要改善这个问题吗? Update the question,所以它是用于堆栈溢出的on-topic。
9年前关闭。
Improve this question
我正在重新编译内核,我想选择一个I/O调度程序。这些有什么区别?
想要改善这个问题吗? Update the question,所以它是用于堆栈溢出的on-topic。
9年前关闭。
Improve this question
我正在重新编译内核,我想选择一个I/O调度程序。这些有什么区别?
最佳答案
如果全部编译,则可以在启动时或按设备选择要使用的调度程序。除非您将目标放在每个字节都很重要的嵌入式设备上,否则无需在编译时进行选择。有关在引导时按设备或系统范围切换的详细信息,请参见Documentation/block/switching-sched.txt
。
CFQ调度程序允许您通过ionice(1)
工具或ioprio_set(2)
系统调用来设置优先级。这允许仅在系统的块设备相对闲置时优先处理某些进程或强制其他进程执行其IO。队列由segregating the IO requests from processes into queues实现,并类似于CPU调度那样处理来自每个队列的请求。可以在Documentation/block/cfq-iosched.txt
中找到有关配置它的详细信息。
相比之下,截止期限调度程序会同时查看所有进程中的所有写入。它按扇区号对写入进行排序,然后全部以线性方式写入。截止日期意味着它会在截止日期到期之前尝试写入每个块,但是在这些截止日期之内,可以根据需要随意重新排列块。可以在Documentation/block/deadline-iosched.txt
中找到有关配置它的详细信息。
关于linux - CFQ,Deadline和NOOP有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9338378/
10-16 19:14