1. 程式人生 > >指令碼控制------------------------(nice與renice命令、程序優先順序控制)

指令碼控制------------------------(nice與renice命令、程序優先順序控制)

5.4 nice與renice命令

在多工作業系統中,核心負責為系統中執行的每個程序分配CPU時間。實際上,CPU中一次只能執行一個程序,因此核心輪流向每個程序分配CPU時間。

預設情況下,從shell啟動的所有程序在Linux系統上的排程優先順序都相同。排程優先順序是核心相對其他程序分配個某一個程序的CPU時間量。

排程優先順序是一個整數值,從-20(最高優先順序)到+20(最低優先順序)。預設情況下,bash shell啟動所有優先順序為0的程序。這表明只需要一點處理時間的簡單指令碼與需要執行幾個小時的複雜數學演算法得到的CPU時間段相同。

有時需要更改特定命令的優先順序,可能要降低優先順序以減少它佔用的CPU資源,還可能要提高優先順序,以獲得更多的處理時間。

5.4.1 nice命令

nice命令可在啟動命令時設定它的排程優先順序。要讓命令在更低的優先順序下執行,只需要使用nice的-n命令列選項指定一個新的優先順序水平

nice給執行指令碼指定優先順序操作例項:

如果試圖增加其中一個命令的優先順序,結果可能會是下面這種情況

nice命令不允許普通系統使用者增加命令的優先順序。這是一個安全特性,防止使用者以高優先順序啟動所有命令。

5.4.2 renice命令

renice命令可以更改已經在系統中執行的命令優先順序。它能夠指定執行程序的PID以更改優先順序。renice命令使用引數說明:

renice命令自動更新執行程式的排程優先順序。renice命令有如下幾個限制:

(1) 只能對擁有的程序使用renice命令

(2) 只能使用renice命令將程序調至更低的優先順序

(3) 根使用者可以使用renice命令將任何程序調至任何優先順序。

如果要完全控制執行程序,則需要以根使用者登入。

renice操作例項如下:

閱讀更多