有没有办法改变整个系统的进程调度策略?例如,我希望将所有进程的默认SCHED_OTHER更改为SCHED_RR。命令chrt对进程进行操作。我想改变整个系统的设置。有什么想法吗?
更新:
具体来说,我想启动一些命令,例如具有不同策略的tar,问题是在启动程序之前,我不知道进程ID。
发布于 2022-04-09 14:24:41
chrt不仅可以更改正在运行的进程的调度优先级(实际上需要pid),还可以按照特定的调度策略启动一个新进程:
chrt [options] priority command argument ... chrt [options] -p [priority] PID DESCRIPTION chrt sets or retrieves the real-time scheduling attributes of an existing PID, or runs command with the given attributes.
因此,如果您想从一开始就直接运行SCHED_RR rtprio 10,只需
chrt -r 10 tar blahblahraroptions如果正如注释中所写的那样,让所有运行的进程在相同的优先级级别上运行相同的调度策略是没有意义的,那么就没有办法做到这一点。但是,可以将所有用户的进程自动启动到所需的调度策略/优先级,因为这是子进程继承的(默认情况下)。
1/叉一个bash进程计划的SCHED_FIFO /优先级10:
$ chrt -f 10 bash[2]从现在起启动的任何程序都将按照相同的时间安排,而不需要使用chrt。
/proc/2074 $ ps -eHo pid,ppid,tid,class,rtprio,ni,pri,comm
...
4168 2074 4168 FF 10 - 50 bash
4192 4168 4192 FF 10 - 50 ps
...Use非常谨慎,只用于测试目的,当然也避免发射分叉炸弹以及分配最高优先级!
https://unix.stackexchange.com/questions/698588
复制相似问题