Linux nice及renice命令使用

2021-08-17 06:13:48 字數 2482 閱讀 7143

引言: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定義結構,儲存資訊...