引言:linux核心是乙個了不起的馬戲表演者,它在程序和系統資源之間小心地玩著雜耍,並保持系統的正常運轉。同時,核心也很公平,它將資源公平地分配給各個程序。但是,如果使用者需要給乙個重要程序提高優先順序、或是降低優先順序,該怎麼辦呢?答案是需要由使用者來為核心制定程序的優先順序。這裡對nice及renice命令做乙個基本的介紹。
一、nice命令
1.1、基本介紹
圖1、nice命令man手冊截圖(不完整)
nice命令可以修改程序的優先順序,進而調整程序排程。nice值的範圍是[-20, 19], -20表示程序的最高優先順序,19表示程序的最低優先順序。linux程序的預設nice值為0。使用nice可調整程序的優先順序,這樣排程器就會依據程序優先順序,為其分配cpu資源。
1)、sleep 200&後,ps -el | grep sleep抓取,無nice命令,優先順序數值為0
圖2、程序優先順序ni預設值為0
2)、nice sleep 200&後,ps -el | grep sleep抓取,優先順序ni數值為10
圖3、nice命令將ni預設調整為10
3)、nice -n sleep 200&,即在預設值0基礎上加n,ps -el | grep sleep抓取
圖4、非管理員可將ni值調整為0-19任意值
4)、nice –n sleep 200&,僅管理員可在預設值0基礎上加 -n,ps -el | grep sleep抓取
圖5、僅管理員可以拉高優先順序
1.2、使用場景
在實際應用中,如果要執行乙個cpu密集型程式,最好通過nice命令來啟動它,這樣可以保證其他程序獲得更高的優先順序,即使伺服器或台式電腦在負載很重的情況下, 也可以快速響應。
1.3、測試例項
下面的測試**,是乙個完全搶占cpu的程式,直接啟動或nice調整優先順序後啟動,使用top觀測其cpu占有率,驗證結論。因為膝上型電腦是四個cpu,需要拉起來至少五個程序,才可以看到效果。
/*****
*****
*****
*****
*****
*****
*****
*****
****
*內容:模擬乙個一直搶占cpu的程序,測試nice命令
*問題:
圖6、ni值高(優先順序低)的程序cpu占有率低
二、renice命令
2.1、基本介紹
圖7、renice命令man手冊截圖(不完整)
renice命令是與nice關聯的乙個命令,由re兩個字母就知道可以重新調整程序執行的優先順序,可以指定群組或者使用者名稱調整優先順序等級,並修改隸屬於該群組或者使用者的所有程式優先順序。等級範圍為[-20,19]。同樣僅系統管理員可以拉高優先順序。nice在程序拉起時調整,renice在程序執行時調整。
2.2、使用場景
乙個緊急程序,需要更多cpu資源時,可以拉低之前執行程序的優先順序。
2.3、測試例項
圖8、renice調整優先順序
三、其他與程序優先順序相關的系統呼叫
nice()、設定程序的優先順序
sched_setscheduler()設定程序排程策略
sched_getscheduler()獲取程序排程策略 等等
linux nice命令 設定程序優先順序
原文 介紹 nice命令用來設定優先順序,優先順序的數值為 20 19,其中數值越小優先順序越高,數值越大優先順序越低,20的優先順序最高,19的優先順序最低。需要注意的是普通使用者只能在0 19之間調整應用程式的優先權值,只有超級使用者有權調整更高的優先權值 從 20 19 語法 nice n 優...
mysql三大正規化及資料約束及查詢及儲存過程
資料約束 連線查詢 多表查詢 儲存過程 引數型別 會話變數 變數只在當前連線會中有效 區域性變數 帶有輸入輸出引數的儲存過程 帶有判斷條件的儲存過程 帶有迴圈條件的儲存過程 接收表中的資料的儲存過程 觸發器create table student id int,name varchar 20 gen...
xml及DTD的解析及運用
9月18日 xml的認識 xml是一種標記語言。標記指計算機所能理解的資訊符號,通過此標記,計算機之間可以處理包含各種資訊的文章等,xml用來傳送及攜帶資料資訊,不用來表現或展示資料,html 語言則是用來表示資料,所以 xml用途的焦點是它說明資料是什麼,以及攜帶資料資訊。xml定義結構,儲存資訊...