17.2. 起動時のサービスの優先度の変更
systemd
を使用すると、システムの起動時に起動するサービスのリアルタイムの優先度を設定できます。
ユニット設定ディレクティブを使用して、起動プロセス時のサービスの優先度を変更します。ブートプロセスの優先順位の変更は、/etc/systemd/system/service.system.d/priority.conf
の service セクションにある以下のディレクティブを使用して行います。
CPUSchedulingPolicy=
実行されるプロセスの CPU スケジューリングポリシーを設定します。Linux で利用可能なスケジューリングクラスのいずれかを設定できます。
-
other
-
batch
-
idle
-
fifo
-
rr
CPUSchedulingPriority=
実行されるプロセスの CPU スケジューリングの優先度を設定します。設定可能な優先度の範囲は、選択した CPU スケジューリングポリシーにより異なります。リアルタイムスケジューリングポリシーでは、1
(最低優先度) から 99
(最高優先度) までの整数を使用できます。
前提条件
- 管理者権限がある。
- システムの起動時に実行するサービス。
手順
既存のサービスに対して以下を実行します。
サービスの補助サービス設定ディレクトリーファイルを作成します。
# cat <<-EOF > /etc/systemd/system/mcelog.service.d/priority.conf
ファイルの
[SERVICE]
セクションに、スケジューリングポリシーと優先度を追加します。以下に例を示します。
[Service] CPUSchedulingPolicy=fifo CPUSchedulingPriority=20 EOF
systemd
スクリプトの設定を再読み込みします。# systemctl daemon-reload
サービスを再起動します。
# systemctl restart mcelog
検証
サービスの優先度を表示します。
$ tuna -t mcelog -P
この出力は、設定されているサービスの優先度を示します。
以下に例を示します。
thread ctxt_switches pid SCHED_ rtpri affinity voluntary nonvoluntary cmd 826 FIFO 20 0,1,2,3 13 0 mcelog
関連情報