飘在云端

啊!那蓝真天,白真云!

· 随笔 · · 375次浏览

Linux 修改进程优先级为实时

前提:需要打了实时的补丁内核

chrt -f -a -p 99 PID

参数说明:chrt,设置进程调度策略和优先级,-f 设置调度策略为实时调度策略:SCHED_FIFO, -a 包含进程下的所有线程, -p 优先级,值为1-99,值越大表示优先级越高,PID 就是进程pid。

示例:
chrt -f -a -p 99 3052218
含义:修改进程pid为 3052218 的进程及其所有线程和后续新增线程的进程调度策略为实时策略 FIFO,实时优先级为99(即最高优先级)
检查效果,使用top或者htop查看设置的进程信息,发现 pri 显示为 RT ,即实时进程,使用 chrt -a -p 进程PID 查看进程调度信息,输出如下:

[root@0z ~]# chrt -a -p 3052218
pid 3052218's current scheduling policy: SCHED_FIFO
pid 3052218's current scheduling priority: 99
pid 3052239's current scheduling policy: SCHED_FIFO
pid 3052239's current scheduling priority: 99
pid 3052240's current scheduling policy: SCHED_FIFO pid 3052240's current scheduling priority: 99

可以看到进程及其所有线程调度策略和优先级已生效。
还可以使用 top / htop 命令查看指定进程的详细线程动态信息
htop -p 3052218
或者 top -H -p 3052218

可以实时观察线程动态,该进程pid下的所有新增线程也会继承设置的调度策略和优先级(因为加了 -a 参数)。