4

我想在特定外部进程的所有线程上设置 SCHED_RR (和优先级)。

什么是最好的方法,从 shell 和另一种情况下做 - 当它作为一个孩子创建它时,从另一个进程以编程方式。谢谢!

我不擅长 shell 脚本,不知道如何为进程的所有线程运行“chrt”,以防万一,线程有不同的名称。

4

2 回答 2

3

您也可以使用 -a 参数。

chrt -p -r -a ${mainpid}

请注意,这不会更改在您运行 chrt 之后将启动的线程的优先级。

于 2019-02-25T17:34:39.917 回答
0

试试这个,以提高 udevd 的优先级:

显示进程所有线程的优先级

$ for p in $(pidof udevd); 执行 chrt -p $p; 完毕

样本输出

pid 1249 的当前调度策略:SCHED_OTHER

pid 1249 的当前调度优先级:0

pid 1248 的当前调度策略:SCHED_OTHER

pid 1248 的当前调度优先级:0

pid 788 的当前调度策略:SCHED_OTHER

pid 788 的当前调度优先级:0

提高进程所有线程的优先级

$ for p in $(pidof udevd); 执行 chrt -p 45 $p; 完毕

样本输出:

pid 1249 的当前调度策略:SCHED_OTHER

pid 1249 的当前调度优先级:0

pid 1249 的新调度策略:SCHED_RR

pid 1249 的新调度优先级:45

pid 1248 的当前调度策略:SCHED_OTHER

pid 1248 的当前调度优先级:0

pid 1248 的新调度策略:SCHED_RR

pid 1248 的新调度优先级:45

pid 788 的当前调度策略:SCHED_OTHER

pid 788 的当前调度优先级:0

pid 788 的新调度策略:SCHED_RR

pid 788 的新调度优先级:45

于 2013-10-15T16:10:09.580 回答