LINUX進程優先順序實現

來源:互聯網
上載者:User

標籤:

首先linux進程優先順序的範圍是-20到19

將目前的目錄下的documents目錄打包,但不希望tar佔用太多CPU:

nice -19 tar zcf pack.tar.gz documents

這個“-19”中的“-”僅表示參數首碼;所以,如果希望賦予tar進程最高的優先順序,則執行:

nice --19 tar zcf pack.tar.gz documents

也可修改已經存在的進程的優先順序:

將PID為1799的進程優先順序設定為最低:

renice 19 1799

renice命令與nice命令的優先順序參數的形式是相反的,直接以優先順序值作為參數即可,無“-”首碼說法。

 

 

進程cpu資源分派就是指進程的優先權(priority)。優先權高的進程有優先執行權利。配置進程優先權對多任務環境的linux很有用,可以改善系統效能。還可以把進程運行到指定的CPU上,這樣一來,把不重要的進程安排到某個CPU,可以大大改善系統整體效能。

一、先看系統進程:

 

首先,我想用一個簡單的命令來引起這個議題。 無論在linux或者unix系統中,用ps –l命令則會類似輸出以下幾個內容:

[[email protected] root]# ps –l   --- 這裡用的是linux測試
F S   UID   PID  PPID  C PRI  NI ADDR    SZ WCHAN  TTY          TIME CMD
4 S     0 20538 20534  0  75   0    -  1063 wait4  pts/2    00:00:00 bash
4 R     0 20663 20538  0  75   0    -   828 -      pts/2    00:00:00 ps

我們很容易注意到其中的幾個重要訊息,有下:
UID : 代表執行者的身份
PID : 代表這個進程的代號
PPID :代表這個進程是由哪個進程發展衍生而來的,亦即父進程的代號
PRI :代表這個進程可被執行的優先順序,其值越小越早被執行
NI :代表這個進程的nice值(優先順序上下活動值)
這裡的前面的三個資訊,我們都是比較好容易理解的,但是後面的兩個奇怪的資訊,一個是PRI,一個是NI,這到底是什麼東西?相對而言,PRI也還是比較好理解的,即進程的優先順序,或者通俗點說就是程式被CPU執行的先後順序,此值越小進程的優先順序別越高。那NI呢?就是我們所要說的nice值了,其表示進程可被執行的優先順序的修正數值。如前面所說,PRI值越小越快被執行,那麼加入nice值後,將會使得PRI變為:PRI(new)=PRI(old)+nice。這樣,當nice值為負值的時候,那麼該程式將會優先順序值將變小,即其優先順序會變高,則其越快被執行。

到目前為止,更需要強調一點的是,進程的nice值不是進程的優先順序,他們不是一個概念,但是進程nice值會影響到進程的優先順序變化。

—————————————————————————
二、修改進程優先順序的命令主要有兩個:nice,renice

1、一開始執行程式就指定nice值:nice

nice -n -5 /usr/local/mysql/bin/mysqld_safe &

  

linux nice 命令詳解

功能說明:設定優先權。

語  法:nice [-n <優先等級>][--help][--version][執行指令]

補充說明:nice指令可以改變程式執行的優先權等級。

參  數:-n<優先等級>或-<優先等級>或–adjustment=<優先等級>  設定欲執行的指令的優先權等級。等級的範圍從-20-19,其中-20最高,19最低,只有系統管理者可以設定負數的等級。
–help  線上協助。
–version  顯示版本資訊。
—————————————————————————
2.1、調整已存在進程的nice:renice

renice -5 -p 5200#PID為5200的進程nice設為-5

linux renice 命令詳解

功能說明:調整優先權。

語  法:renice [優先等級][-g <程式群組名稱>...][-p <程式識別碼>...][-u <使用者名稱稱>...]

補充說明:renice指令可重新調整程式執行的優先權等級。預設是以程式識別碼指定程式調整其優先權,您亦可以指定程式群組或使用者名稱稱調整優先權等級,並修改所有隸屬於該程式群組或使用者的程式的優先權。等級範圍從-20–19,只有系統管理者可以改變其他使用者程式的優先權,也僅有系統管理者可以設定負數等級。
參  數:
-g <程式群組名稱>  使用程式群組名稱,修改所有隸屬於該程式群組的程式的優先權。
-p <程式識別碼>  改變該程式的優先權等級,此參數為預設值。
-u <使用者名稱稱>  指定使用者名稱稱,修改所有隸屬於該使用者的程式的優先權。

2.2、也可以用top命令更改已存在進程的nice:

top#進入top後按“r”–>輸入進程PID–>輸入nice值

  

 轉錄:http://blog.chinaunix.net/uid-24517549-id-3969451.html

 

 

 

 

 

 

 

 

 

 

 

 

 

 

--

LINUX進程優先順序實現

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.