4.3. 实时调度程序优先级
systemd 命令可用于在引导过程中为启动的服务设置实时优先级。一些内核线程可以被赋予一个非常高的优先级。这允许默认优先级与 Java (RTSJ)实时规范的要求良好集成。RTSJ 需要 10 到 89 范围内的优先级。
对于不使用 RTSJ 的部署,应用程序可以使用在 90 以下的调度优先级。在调度优先级 49 的任何应用程序线程时,请特别小心,因为它可以防止必要的系统服务运行,因为它可以防止重要的系统服务运行。这可能会导致无法预计的行为,包括阻止网络流量、阻止虚拟内存分页和数据崩溃,因为文件系统日志记录造成数据崩溃。
如果任何应用程序线程调度到优先级 89,请确保线程仅运行非常短的代码路径。如果不这样做,会降低 RHEL for Real Time 内核的低延迟功能。
为没有强制权限的用户设置实时优先级
默认情况下,只有具有应用 root 权限的用户才能更改优先级和调度信息。要提供 root 权限,您可以修改设置,首选方法是将用户添加到 realtime 组中。
重要
您还可以通过编辑 /etc/security/limits.conf 文件来更改用户权限。但是,这可能会导致重复,并使系统对常规用户不可用。如果您决定编辑此文件,请谨慎操作,并在进行更改之前创建副本。