どのプロセススケジューラが使用されているかを確認するには? [コピー]

どのプロセススケジューラが使用されているかを確認するには? [コピー]

つまり、O(1)スケジューラですか、CFSスケジューラですか、それとも古いスケジューラですか?

答え1

sched_getscheduler(process_pid)プロセスの予約ポリシーを決定するために呼び出すことができます。

存在するなら/sys/kernel/uidsCFSがあるのです。または試してみることができます

[[ -n $(awk '$3 == "load_balance_fair" {print;}' < /proc/kallsyms) ]] && 
  echo CFS

O(1)スケジューラと他の古いスケジューラを区別する方法がわかりません。私の考えではカーネルバージョンを使用できますが、ディストリビューションは自分がリリースするカーネルにパッチを適用するので、これは信頼できません。

答え2

プログラマーは、この関数 man sched_setscheduler を使用してプロセスのスケジューラーを定義できます。

プロセスで使用されるスケジューラを表示するには、top コマンドを使用できます。

プロセスチャートを変更するためのスケジューラ

関連情報