Linuxシステムはどのプロセススケジューラを使用していますか?


10

stackoverflowまたはserverfaultがこの質問に使用するフォーラムであるかどうかはよくわかりませんが、ここで試してみてください。

Linuxシステムで使用しているプロセススケジューラを確認するために使用できるコマンドやチェックできるファイルはありますか?私はI / Oスケジューラーを探していませんが、プロセススケジューラーを探しています。スケジューラーとは何か、実行できるコマンドまたはファイルがあるかどうかだけを尋ねているガイドやハウツーを参照しないでください/これを確認してください。カーネルのドキュメントを確認することもできますが、もう一度確認できるコマンドやファイルがあるかどうか疑問に思っています。

上記で少し冗長であったかもしれませんが、それは、私が見た投稿がプロセススケジューラと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

回答:


7

Linuxシステムでどのプロセススケジューラを使用しているかを確認するために使用できるコマンドやチェックできるファイルはありますか?

いいえ、I / OスケジューラへのWRTとは異なり、リアルタイム機能を含むCFS(「完全に公平なスケジューラ」)の1つの可能性しかないためです。CFSは、その記事で言及されているようにバージョン2.6.23で置き換えられた「O(1)」スケジューラーと区別するために部分的に名前が付けられています。

したがって、不明なカーネルがある場合は、バージョン番号を確認してください。


あなたの答えをありがとう、それから私はドキュメントを調べずにこれを見つけるためにチェックできるファイルがないと思います、パラメータの詳細のより良い概要を持っているスケジューラを素早く見つけることができると便利ですシステムが使用しているカーネルで使用されています。
超える

1
どんな設定オプションや「使用されているパラメータ」などを反映していないので、そのようなことはないと思います。可能なスケジューラは1つだけです。スケジューラ。現在、これは「完全に公平なスケジューラ」と呼ばれていますが、これは抽象的な設計上の問題であり、カーネルに寄与する多くの問題の1つです。通常、それらはソースなどに文書化されています。したがって、質問はの冗長ですuname -r
goldilocks 14

0

試してください:

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

ここを参照してください:第14章:チューニング


カーネル構成ファイルがないので、そのように確認できます。カーネルをインストールするバイナリrpmを備えたredhatシステムを使用しています。
2014

1
それを検索するとき、プロセススケジューラに関連する唯一の変数はCONFIG_SCHED_SMT = y、CONFIG_SCHED_MC = yおよびCONFIG_NET_SCHED = yであるように見えますが、実際にはあまりわかりません。14
超え

1
CONFIG_SCHED_SMT = yハイパースレッディングスケジューラがオン、CONFIG_SCHED_MC = yマルチコアサポートがオン、CONFIG_NET_SCHED = yネットワークのQoS / FairQueingがオン。ゴルディロックスが彼の答えに言及したように正しい。
eyoung100 2014

4
なぜzgrep SCHEDULE /proc/config.gzですか?
terdon

1
私が理解していることは、あなたが不必要に複雑なアプローチを使用していたということです。
terdon

0

cat /proc/config.gz | gunzip | nano -(またはcat /proc/config.gz | gunzip | gedit -、そのことについては)は、一時ファイルへの「ガンジップ」を必要としないeyoung100の回答のより良い代替手段です。
編集:さらにシンプル- 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.
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.