转:linux设置进程优先级
轉自:http://man.ddvip.com/linux/Mandrakelinuxref/process-priority.html
系統中運行的每個進程都有一個優先級(亦稱“nice 值”),其范圍從 -20 (最高優先級)到 19 (最低優先級)。默認情況下,進程的優先級是 0 (“基本”調度優先級)。優先級比較大的進程(nice 值比較小,最低到 -20)相對優先級比較小的進程(直到 19)將比較頻繁地被調度運行,因此就擁有更多的進程周期。一般用戶只能降低它們自己進程的優先級別,并限于 0 到 19 之間。超級用戶(root)可以將任何進程的優先級設定為任何值。
renice
如果某個或某些進程消耗了過多的系統資源,除了終止它們,您還可以更改它們的優先級。為此,請使用 renice 命令。其語法為:
| renice 優先級 [[-p] pid ...] [[-g] pgrp ...] [[-u] 用戶名 ...] |
其中,優先級是指優先級的值;pid (對多個進程請使用 -p 選項)表示進程 ID 號;pgrp (如果有多個,請用 -g)表示進程組 ID 號;而用戶(如果不只一個,請用 -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 |
然后就可以繼續工作了。
總結
以上是生活随笔為你收集整理的转:linux设置进程优先级的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决RHEL sendmail服务启动慢
- 下一篇: 转:SqlPlus Set常用设置