![为什么最高优先级线程在 top 和 htop 中显示为 RT?](https://linux22.com/image/55557/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%9C%80%E9%AB%98%E4%BC%98%E5%85%88%E7%BA%A7%E7%BA%BF%E7%A8%8B%E5%9C%A8%20top%20%E5%92%8C%20htop%20%E4%B8%AD%E6%98%BE%E7%A4%BA%E4%B8%BA%20RT%EF%BC%9F.png)
top
在和工具中htop
,具有最高实时优先级(从用户态 API 角度来看为 99)的进程(或/和线程,取决于显示设置)以及调度策略SCHED_RR
或SCHED_FIFO
优先级显示为RT
。
对于所有其他实时进程,优先级显示为数字 p,定义如下:
p = -userprio -1
我想知道为什么top
不htop
显示-100
最高优先级的实时进程?
答案1
我想知道为什么 top 和 htop 不显示最高优先级实时进程的 -100 ?
这是因为SCHED_RR
和SCHED_FIFO
具有 1-99 范围内的固定静态优先级:
rt 上的 RedHat MRG 文档
对于实时优先级,顺序是相反的:99 确实是最高的,与通常的“越低越好”相反。
根据您的评论,我误解了您的问题,抱歉。
顶部只有一列,因此无法将 RT 优先级与其他优先级区分开来。为了解决这个问题,“rt”用于指示这些进程使用实时调度程序类。
您可以使用 来查看差异ps ax --format uname,pid,ppid,tty,cmd,cls,pri,rtprio
,这将为您提供 2 列,一列用于 prio,另一列用于 rtprio。
旁注:上述命令还将显示进程使用的调度程序类(字段cls
)。