LINUX進程優先級的設置和一些注意地方

安排進程的執行順序:CPU調度和優先執行續
1.CPU調度: 指的是cpu對於進程它有自己的一套調度算法。
2.例行性工作調度:用戶可以將某些程序安排給系統去讓它在某個時間執行。
Priority與nice:這兩個參數用來查看進程的優先級
//CPU一秒鐘可以運行多達數G的微命令次數,這些命令肯定分主次,要不就亂了,這就考慮到了優先級。
×××××××
優先級最終是通過PRI的值來規定的,它的計算方式:
PRI(new) = PRI(old) + NICE
×××××××
PRI:相當於CPU調度,它的值是由內核進行動態調整,值越低,優先級越高, 用戶無法調整它的值。這個是系統調整各個進程優先級最根本的東西。
××××××你可以通過ps -l來查看自己bash的相關進程。
NI:普通用戶雖然無法改變PRI的值,但是我們可以通過改變nice的值去影響PRI最終的值,
NICE的取值範圍: -20-19;
root和普通用戶所能更改的範圍不同
root隨意這要在-20-19這個範圍內
普通用戶0-19。相當於只能增高無法降低
————————————————————————————————————————————
執行命令:
nice -n 數字 command 可以放到後臺&
例如:root用戶
1: nice -n -5 vi &//-5是nice的值
2: ps -l
用於查看,最終PRI的值取決以內核的調度算法,不是簡單的1加2.
————————————————————————————————————————————
調整已經存在的進程的nice: renice命令
renice number PID//number是你要給某個PID進程設置的NICE的值
————————————————————————————————————————————————————
執行命令:
renice 10 19343
含義是:給19343這個PID所對應的進程的nice設置一個10.
××××注意:
系統重啓後,對進程優先級的調整全部失效,所有進程的調度回到默認的初始級別。
在LINUX系統中,Nice值的範圍從-20到+19(不同系統的值範圍是不一樣的),正值表示低優先級,負值表示高優先級,值爲零則表示不會調整該進程的優先級。具有最高優先級的程序,其nice值最低,所以在LINUX系統中,值-20使得一項任務變得非常重要;與之相反,如果任務的nice爲+19,則表示它是一個高尚的、無私的任務,允許所有其他任務比自己享有寶貴的CPU時間的更大使用份額,這也就是nice的名稱的來意。

 進程在創建時被賦予不同的優先級值,而如前面所說,nice的值是表示進程優先級值可被修正數據值,因此,每個進程都在其計劃執行時被賦予一個nice值,這樣系統就可以根據系統的資源以及具體進程的各類資源消耗情況,主動干預進程的優先級值。在通常情況下,子進程會繼承父進程的nice值,比如在系統啓動的過程中,init進程會被賦予0,其他所有進程繼承了這個nice值(因爲其他進程都是init的子進程)。
優先級是系統自動來調整的,一般無需我們自己調整。不過遇到特殊情況,調整一下對電腦使用有好處。比如你想一邊看電影一邊打文字或幹別的什麼話,那麼就調整那個電影播放器的進程,設置爲“低於標準”,系統提示“可能會導致系統不穩定”,不要管它,選“是”繼續。這樣前臺程序就會比後臺程序(播放軟件)優先,系統會讓前臺程序優先執行,前臺程序空閒的時候再讓後臺程序滿負荷工作。這樣就可以充分佔用前臺程序剩下的系統資源,達到對系統資源的高效利用

發佈了27 篇原創文章 · 獲贊 8 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章