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

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

stackoverflowまたはserverfaultがこの問題のフォーラムであるかどうかはわかりませんが、ここで試してみましょう。

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

上記の内容は多少重複する可能性がありますが、私が見た記事は、誰かがプロセススケジューラとI / Oスケジューラを混同しているように見え、実際の質問に答えていないようだったので、何へのリンクだけを提供したからです。スケジューラはここにあります。私はここでやるべきことではないので、上記のコメントが失礼に聞こえた場合はお詫び申し上げます。

答え1

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

いいえ。 I/OスケジューラのWRTとは異なり可能性は1つだけです:CFS("Completely Fair Scheduler")、リアルタイム機能が含まれています。 CFSは一致するように部分的に命名されました。「O(1)」スケジューラは、その記事に記載されているようにバージョン2.6.23で置き換えられました。


2023年10月

カーネルバージョン6.6以降、CFSスケジューラは交換済みEEVDS基準(「最速適格仮想期限から」)0スケジューラ:

これはIntelのエンジニアが発表したもので、ここ数年で独自のディストリビューションを使用してLinux開発に広範な関心を示しているので興味深いものです。クリーンLinux、現在他のすべてのオペレーティングシステムより優れています高度なIntelハードウェアから。

「交換」とは、以前のスケジューラを使用できなくなったことを意味します。したがって、システムがどのバージョンを使用しているかを確認するには、カーネルのバージョンを確認してください。

  • < 2.6.23: O(1) スケジューラ。
  • >= 2.6.23 < 6.6: 完全に公正なスケジューラ。
  • >= 6.6: EEVDF スケジューラ。

答え2

cat /proc/config.gz | gunzip | nano -(またはcat /proc/config.gz | gunzip | gedit -その問題では)より良い選択肢ですeyoung100さんの返信一時ファイルに「gunzipping」は必要ありません。
編集する:より簡単に -zcat /proc/config.gz | nano -またはzcat /proc/config.gz | gedit -

または、次のように@テデンこの回答の下のコメントでは、zgrepの使用が提案されました。別の検索文字列をお勧めします。

zgrep "CONFIG_SCHED_" /proc/config.gz

たとえば、次のように表示される場合、CONFIG_SCHED_yカーネルは MuQSS スケジューラを使用するように設定されます。しかし、、これはこれを保証しません。はい。アーチスウィキ提案:

$ dmesg | grep -i muqss
...
MuQSS CPU scheduler v0.120 by Con Kolivas.

答え3

努力する:

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

ねえ:第14章:調整

答え4

役に立ち、質問を正しく理解したら、しばらくUbuntuで経験した問題は次のとおりです。

CPUスケジューラ

カーネル6.6以前はCFS(Completely Fair Scheduler)でした。 6.6以降では、EEVDF(最も早い適格仮想期限から)が使用されます。 EEVDFはまだ更新を受けています。 6.8、6.9、6.10 現在、最適化は進行中です。私はSchedulerの型やそれへの参照を得る簡単な方法を見つけることができず、それに関する記事を読んだことはありません。https://blogs.igalia.com/changwoo/sched-ext-a-bpf-extensible-scheduler-class-part-1/

私はこれをしましたが、dmesg | grep 'scheduler'mq-deadlineメッセージのみを受け取りました。 CFSやEEVDFなどについては言及されていません。

ディスクスケジューラ

cat /sys/block/sda/queue/scheduler

sdaSSD、NVMEなどのデバイス、またはRamboについても、これらのすべてのデバイスを確認して変更できます(次はSDxおよびNVMExデバイスのみを探します)。

cat /sys/block/{sd?,nvme*n1}/queue/scheduler

次の内容が表示されます。

ここに画像の説明を入力してください。

括弧内のスケジューラは、対応するブロックデバイスのスケジューラです。したがって、SDAの場合はmq-deadline、NVMEの場合はスケジューラを使用しません。

関連情報