当前位置: 首页 > 面试题库 >

选择Linux I / O调度程序

车嘉实
2023-03-14
问题内容

我读到,据说可以通过写入/ sys / block / [disk] / queue / scheduler来更改正在运行的内核上特定设备的I /
O调度程序。例如,我可以在系统上看到:

anon@anon:~$ cat /sys/block/sda/queue/scheduler 
noop anticipatory deadline [cfq]

默认值是完全公平的队列调度程序。我想知道的是,在自定义内核中包括所有四个调度程序是否有用。除非内核足够聪明地为正确的硬件选择正确的调度程序,特别是基于闪存的驱动器的“
noop”调度程序,以及针对传统驱动器的其他调度程序,否则编译一个以上的调度程序似乎没有多大意义。硬盘。

是这样吗


问题答案:

如中所述/usr/src/linux/Documentation/block/switching- sched.txt,可以在运行时更改任何特定块设备上的I /
O调度程序。可能会有一些延迟,因为在使用新的调度程序之前,所有先前的调度程序的请求都已清除,但是即使设备使用过多,也可以毫无问题地对其进行更改。

# cat /sys/block/hda/queue/scheduler
noop deadline [cfq]
# echo anticipatory > /sys/block/hda/queue/scheduler
# cat /sys/block/hda/queue/scheduler
noop [deadline] cfq

理想情况下,将有一个调度程序来满足所有需求。它似乎还不存在。内核通常没有足够的知识来为您的工作负载选择最佳的调度程序:

  • noop 通常是内存支持的块设备(例如ramdisk)和其他非旋转介质(闪存)的最佳选择,在这些设备中尝试重新计划I / O会浪费资源
  • deadline 是一个轻量级的调度程序,它试图对延迟进行严格限制
  • cfq 尝试维护I / O带宽在系统范围内的公平性

默认设置anticipatory很长时间,它进行了很多调整,但在 2.6.33 (2010年初)中已被删除。
cfq成为前一段时间的默认设置,因为它的性能合理且公平是多用户系统(甚至单用户桌面)的一个好目标。在某些情况下-
数据库经常被用作示例,因为它们往往已经具有自己独特的调度和访问模式,并且通常是 重要的服务(所以谁在乎公平性?)-
anticipatory具有可调性的悠久历史以在这些工作负载上获得最佳性能,并deadline很快将所有请求传递到基础设备。



 类似资料:
  • 问题内容: 我正在尝试使用hibernate创建一个小项目,但出现了错误“类型未映射[从类型o中选择o]”,我在hibernate.cfg.xml中添加了映射,但仍然出错。 Type.java: hibernate.org.xml: hibernateUtil.java: 测试Java 问题答案: 解决了 !问题是我使用的hibernate版本,所以我对其进行了更改,即HibernateUtil中

  • 用途: 提供独立于平台的基于select模块的I/O多路复用的抽象 运行模式 回显服务端 # selectors_echo_server.py import selectors import socket mysel = selectors.DefaultSelector() keep_running = True def read(connection, mask): "Callb

  • 颜色在图像风格中比起其他元素显得更为重要。当合理有效地使用颜色时,数据模式会被凸显出来;反之,则会被掩盖。这里有很多数据可视化中关于颜色使用的优秀资源,我推荐阅读这些 Rob Simmon 的博客文章以及这篇更加学术性的论文。 此外,matplotlib 文档也提供了一篇很好的教程来说明一些内置Colormap的感知属性。 seaborn让您在选择与您处理的数据类型和可视化过程中搭配的配色方案变得

  • 在SJF算法中,我们使用公式来预测下一个CPU突发时间: 然后我们选择预测突发时间最短的进程。现在我的问题是:我们已经知道进程到达的CPU突发时间了吗?如果是,那么为什么要预测CPU突发时间呢?我们可以只使用最短时间的进程来调度。如果不是,即,我们对进程的突发时间没有任何想法,预测的突发时间(n 1)如何帮助我们选择进程?希望我能解释我的困惑。谢谢。

  • 我正在做一个项目,我们计划使用WLP (WebSphere liberty)代替传统的WAS。 代码使用 WAS 调度程序来调度活动。 liberty 是否也具有与 WAS 中存在的相同级别的调度程序支持/功能? 如何将调度程序任务从webphere迁移到自由?

  • 角度字段存储数字作为其值,并存储字符串作为其文本。 它的值是0到360之间的数字(可以更改此范围),而其文本可以是输入到其编辑器中的任何字符串。 角度字段 带编辑器的角度字段 压缩的角度字段 创造 { "type": "example_angle", "message0": "angle: %1", "args0": [ { "type": "field_angle