21.2. 在引导过程中更改服务优先级
使用 systemd
,您可以为在引导过程中启动的服务设置实时优先级。
单元配置指令用于在引导过程中更改服务优先级。引导过程优先级更改通过使用 /etc/systemd/system/ 服务 .system.d/priority.conf 的service
部分中的以下指令来实现:
CPUSchedulingPolicy=
设置已执行进程的 CPU 调度策略。获取 Linux 上可用的调度类之一:
-
其他
-
batch
-
idle
-
fifo
-
rr
CPUSchedulingPriority=
为已执行的进程设置 CPU 调度优先级。可用的优先级范围取决于所选的 CPU 调度策略。对于实时调度策略,可以使用 1
(最低优先级)和 99
(最高优先级)之间的整数。
先决条件
- 管理员特权。
- 引导时运行的服务。
流程
对于现有服务:
为该服务创建一个补充服务配置目录文件。
# cat <<-EOF > /etc/systemd/system/mcelog.system.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
其他资源