我的linux系统使用哪个进程调度程序?


10

我不太确定是否stackoverflow或serverfault是用于此问题的论坛,但请尝试此处。

是否可以使用某些命令或可以检查的文件,以找出我在Linux系统上使用的进程调度程序?我不是在寻找I / O调度程序,而是进程调度程序,请不要参考指南或howtos来了解调度程序是什么,我只是想问的是是否存在可以运行的命令或文件/检查看看。我可以检查我的内核文档,但是我只是想知道是否有可以检查的命令或文件。

上面我可能有点多余,但这是因为我见过的帖子似乎使流程调度程序与I / O调度程序混淆,他们似乎并没有回答实际问题,仅提供指向调度程序的链接这不是我想要的,如果上述评论听起来不礼貌,请您道歉。


2
您暗示Linux必须以某种方式选择不同的调度程序算法。是什么让您认为情况如此?
斯特凡Chazelas


我不,我不认为您可以实时更改流程计划程序。我要问的是是否有命令要检查或文件要读取的内容才能查看哪个是活动的。但是,如果您愿意,我想您可以选择O(1)或O(n)。
超过

1
在Linux内核2.6.23中的AFAIK中,我们将进程调度程序从O(1)更改为CFS,并且对于可动态更改的进程,没有任何其他调度程序,就像块I / O调度程序一样。
Artur Szymczak

2
@ZanLynx建议关闭旧问题,以替代此问题,因为该问题已在此处得到更好的处理。
goldilocks 2014年

Answers:


7

有没有我可以使用的命令或可以检查的文件,以便找出我在Linux系统上使用的进程调度程序?

不可以,因为与I / O调度程序的WRT不同,只有一种可能性:CFS(“完全公平的调度程序”)具有实时功能。CFS的部分命名是为了将其与“ O(1)”调度程序区分开来,该调度程序已在该文章中指出,已被版本2.6.23取代。

因此,如果您不确定内核是否存在,只需检查版本号即可。


谢谢您的回答,然后我想这里没有文件可以在不咨询文档的情况下找到它,因此能够轻松地找出用于更好地了解参数详细信息的调度程序将非常方便在系统正在使用的内核中使用。
超过

1
我不认为这是有原因的,因为它不反映任何一种配置选项或“正在使用的参数”等。当前,它被称为“完全公平的调度程序”,这是一个抽象的设计问题,是促成内核的众多问题之一。通常它们在源代码中都有记录,等等。因此,这个问题是多余的uname -r
goldilocks 2014年

0

尝试:

cat /proc/config.gz | gunzip > ~/running.config
nano -w ~/running.config
CTRL + W SCHEDULE

参见此处:第14章:调优


我没有内核配置文件,所以我可以像这样检查它。我正在使用具有二进制rpm的Redhat系统来安装内核。
超过

1
当通过它进行搜索时,与进程调度程序有关的唯一变量似乎是CONFIG_SCHED_SMT = y,CONFIG_SCHED_MC = y和CONFIG_NET_SCHED = y,这并不能告诉我太多信息
超过了

1
CONFIG_SCHED_SMT = y超线程调度程序为ON,CONFIG_SCHED_MC = y多核支持为ON,CONFIG_NET_SCHED = y QoS / FairQueing为联网打开。正如Goldilocks所说,他的回答是正确的。
eyoung100

4
为什么不只是zgrep SCHEDULE /proc/config.gz呢?
terdon

1
我意识到,我的意思是您正在使用不必要的复杂方法。
terdon

0

cat /proc/config.gz | gunzip | nano -(或者cat /proc/config.gz | gunzip | gedit -,就此而言)eyoung100答案的一种更好的选择,它不需要“ gunzip”到一个临时文件。
编辑:更简单- zcat /proc/config.gz | nano -zcat /proc/config.gz | gedit -

或者,如@terdon在该答案下的注释中所建议,请使用zgrep。我只是建议使用其他搜索字符串:

zgrep "CONFIG_SCHED_" /proc/config.gz

如果您看到例如:CONFIG_SCHED_y,则将内核配置为使用MuQSS调度程序。但是,不能保证。Arch Wiki 建议

$ dmesg | grep -i muqss
...
MuQSS CPU scheduler v0.120 by Con Kolivas.
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.