Linux 中的 renice 和 chrt 命令有什么区别?

hal*_*alp 5 linux scheduling

Linux 中的 renice 和 chrt 命令有什么区别?

小智 10

好吧,我在http://www.spinics.net/lists/linux-rt-users/msg03987.html上找到了这个,它很好地解释了差异:

“nice”是一个历史性的实用程序,它在批处理计算的早期被用来对其他用户“好”并放弃一些 CPU 时间。它仍在使用并且很有用,并且仅适用于在 Linux 上使用 SCHED_OTHER 策略运行的进程。

“chrt”是改变调度策略(SCHED_OTHER、SCHED_FIFO、SCHED_RR)和进程/任务优先级的工具。使用 chrt,您可以使用此类策略启动进程或修改已运行的进程/任务策略。您需要有权限才能这样做。

所以主要区别在于“nice”只能在 SCHED_OTHER 策略的 nice 级别内运行,而“chrt”可以更改策略和进程/任务的优先级。

...

tglx


PiL*_*PiL 3

chrt(1) 不仅用于更改进程的优先级,还用于更改调度策略。调度策略可以有四种:

  • SCHED_FIFO=先进先出,实时进程。
  • SCHED_RR=循环实时进程。
  • SCHED_OTHER=正常分时
  • SCHED_BATCH=与SCHED_OTHER几乎相同,但该进程始终被认为是最消耗CPU的。

请参阅setscheduler(2)。

renice(8) 只是改变进程的优先级。

  • 那么chrt比renice“更强”?一起使用 chrt 和 renice 有意义吗?这些手册页对我来说看起来很神秘,我想阅读一些用例以了解其中的差异。 (2认同)