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