Linux

Linux中的renice和chrt命令有什麼區別?

  • April 16, 2021

Linux中的renice和chrt命令有什麼區別?

chrt(1) 不僅用於更改程序的優先級,還用於更改調度策略。調度策略可以是四種:

  • SCHED_FIFO=先進先出實時程序。
  • SCHED_RR=輪詢實時程序。
  • SCHED_OTHER=正常分時
  • SCHED_BATCH=與 SCHED_OTHER 幾乎相同,但該程序始終被認為是 CPU 消耗最多的程序。

請參閱 setscheduler(2)。

renice(8) 只是改變一個程序的優先級。

好吧,我在http://www.spinics.net/lists/linux-rt-users/msg03987.html上找到了這個,很好地解釋了差異:

“nice”是一個歷史性的實用程序,在批處理計算的早期被用來對其他使用者“nice”並放棄一些 CPU 時間。它仍在使用且有用,僅適用於在 Linux 上使用 SCHED_OTHER 策略執行的程序。

“chrt”是一個改變調度策略(SCHED_OTHER、SCHED_FIFO、SCHED_RR)和程序/任務優先級的工具。使用 chrt,您可以使用此類策略啟動程序或修改已執行的程序/任務策略。您需要擁有執行此操作的權限。

所以主要區別在於“nice”只能在 SCHED_OTHER 策略的 nice 級別內執行,而“chrt”可以更改策略和程序/任務的優先級。

tglx

引用自:https://serverfault.com/questions/161008