我想在特定外部进程的所有线程上设置 SCHED_RR (和优先级)。
什么是最好的方法,从 shell 和另一种情况下做 - 当它作为一个孩子创建它时,从另一个进程以编程方式。谢谢!
我不擅长 shell 脚本,不知道如何为进程的所有线程运行“chrt”,以防万一,线程有不同的名称。
我想在特定外部进程的所有线程上设置 SCHED_RR (和优先级)。
什么是最好的方法,从 shell 和另一种情况下做 - 当它作为一个孩子创建它时,从另一个进程以编程方式。谢谢!
我不擅长 shell 脚本,不知道如何为进程的所有线程运行“chrt”,以防万一,线程有不同的名称。
您也可以使用 -a 参数。
chrt -p -r -a ${mainpid}
请注意,这不会更改在您运行 chrt 之后将启动的线程的优先级。
试试这个,以提高 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