設定進程的優先順序

來源:互聯網
上載者:User

 

設定進程的優先順序:nice、renice

系統中啟動並執行每個進程都有一個優先順序(亦稱“nice 值”),其範圍從 -20 (最高優先順序)到 19 (最低優先順序)。預設情況下,進程的優先順序是 0 (“基本”調度優先順序)。優先順序比較大的進程(nice 值比較小,最低到 -20)相對優先順序比較小的進程(直到 19)將比較頻繁地被調度運行,因此就擁有更多的進程周期。一般使用者只能降低它們自己進程的優先順序別,並限於 0 到 19 之間。超級使用者(root)可以將任何進程的優先順序設定為任何值。

renice

如果某個或某些進程消耗了過多的系統資源,除了終止它們,您還可以更改它們的優先順序。為此,請使用 renice 命令。其文法為:

renice 優先順序 [[-p] pid ...] [[-g] pgrp ...] [[-u] 使用者名稱 ...]

其中,優先順序是指優先順序的值;pid (對多個進程請使用 -p 選項)表示進程 識別碼;pgrp (如果有多個,請用 -g)表示進程組 識別碼;而使用者(如果不只一個,請用 -u)表示進程所有者的使用者名稱。

假定您運行了一個執行長時間科學運算的進程(其 PID 為 785),但是您又想要玩一個遊戲而想要釋放一些系統資源。那麼您可以:

$ renice +15 785

這樣,您的那個進程可能需要花費更長一些時間完成,不過它就不會從其他進程手裡搶走 CPU 時間片。

如果您是系統管理員,而且您發覺某些使用者執行了過多的進程並消耗了過多的系統資源時,您只需鍵入一個命令就可以改變這些使用者進程的優先順序:

# renice +20 -u li_si

這樣,li_si 的所有進程都將擁有最低優先順序,因而就不會阻礙其他使用者的進程了。

nice

既然您已經瞭解可以更改進程的優先順序,您可能需要按照指定的優先順序執行命令。為此,請使用 nice 命令。

此時,您需要把您要啟動並執行命令作為 nice 的一個參數。而其另一個參數 -n 可用來設定優先權別。預設情況下 nice 將設定優先權為 10。

比如,您想要建立一張 Mandrakelinux 安裝 CD-ROM 的 ISO 映像:

$ dd if=/dev/cdrom of=~/mdk1.iso

在某些裝配標準 IDE CD-ROM 的系統上,複製大量資訊的進程將消耗過多系統資源。要避免複製操作阻礙其他進程,您可以用如下命令在一個比較低的優先順序上啟動該進程:

$ nice -n 19 dd if=/dev/cdrom of=~/mdk1.iso

然後就可以繼續工作了。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.