どのプロセス スケジューラが使用されているかをどのように判断できますか?

どのプロセス スケジューラが使用されているかをどのように判断できますか?

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

答え1

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

存在する場合/sys/kernel/uids、CFSに罹患しています。または、

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

O(1) スケジューラを他の古いスケジューラとどのように区別できるかはわかりません。カーネル バージョンを使用することもできますが、ディストリビューションは出荷されたカーネルにパッチを適用しているため、これは信頼できません。

答え2

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

プロセスが使用するスケジューラを確認するには、topコマンドを使用します。

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

関連情報