为什么最高优先级线程在 top 和 htop 中显示为 RT?

为什么最高优先级线程在 top 和 htop 中显示为 RT?

top在和工具中htop,具有最高实时优先级(从用户态 API 角度来看为 99)的进程(或/和线程,取决于显示设置)以及调度策略SCHED_RRSCHED_FIFO优先级显示为RT

对于所有其他实时进程,优先级显示为数字 p,定义如下:

p = -userprio -1 

我想知道为什么tophtop显示-100最高优先级的实时进程?

答案1

我想知道为什么 top 和 htop 不显示最高优先级实时进程的 -100 ?

这是因为SCHED_RRSCHED_FIFO具有 1-99 范围内的固定静态优先级: rt 上的 RedHat MRG 文档

对于实时优先级,顺序是相反的:99 确实是最高的,与通常的“越低越好”相反。

根据您的评论,我误解了您的问题,抱歉。

顶部只有一列,因此无法将 RT 优先级与其他优先级区分开来。为了解决这个问题,“rt”用于指示这些进程使用实时调度程序类。

您可以使用 来查看差异ps ax --format uname,pid,ppid,tty,cmd,cls,pri,rtprio,这将为您提供 2 列,一列用于 prio,另一列用于 rtprio。

旁注:上述命令还将显示进程使用的调度程序类(字段cls)。

相关内容