首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CFQ、Deadline和NOOP之间的区别是什么?

CFQ、Deadline和NOOP之间的区别是什么?
EN

Stack Overflow用户
提问于 2012-02-18 11:54:53
回答 2查看 37.5K关注 0票数 8

我正在重新编译我的内核,我想选择一个I/O调度器。它们之间的区别是什么?

EN

回答 2

Stack Overflow用户

发布于 2012-02-18 12:12:00

如果将它们全部编译,则可以在引导时或在每个设备上选择要使用的调度器。不需要在编译时进行选择,除非您的目标是每一个字节都很重要的嵌入式设备。有关在引导时按设备或在系统范围内进行切换的详细信息,请参阅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

票数 13
EN

Stack Overflow用户

发布于 2012-02-18 15:22:53

在实践中可能很少。

在我的测试中,我发现一般来说,如果你有一个聪明的RAID控制器,NOOP会更好一些。其他人也报告了类似的结果,但您的工作负载可能不同。

但是,您可以在运行时选择它们(无需重启),因此不用担心编译时的问题。

我的理解是,“聪明的”调度程序(CFQ和deadline)只有在没有RAID控制器的传统“旋转磁盘”设备上才是真正有用的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9338378

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档