1. 程式人生 > >linux進程管理之優先級

linux進程管理之優先級

inux 運行 linux 進程 and normal ren 目的 調整 調度

進程優先級

nice


====================================================================================

Linux 進程調度及多任務
相對優先級nice
查看進程的nice級別
啟動具有不同nice級別的進程
更改現有進程的nice級別


Linux 進程調度及多任務
每個CPU(或CPU核心)在一個時間點上只能處理一個進程,通過時間片技術,Linux實際能夠運行的進程(和線程數)可以超
出實際可用的CPU及核心數量。Linux內核進程調度程序將多個進程在CPU核心上快速切換,從而給用戶多個進程在同時運行的印象。



相對優先級 nice
由於不是每個進程都與其他進程同樣重要,可告知進程調度程序為不同的進程使用不同的調度策略。常規系統上運行的大多
數進程所使用的調度策略為 SCHED_OTHER (也稱為SCHED_NORMAL),但還有其它一些調度策略用於不同的目的。

SCHED_OTHER 調度策略運行的進程的相對優先級稱為進程的 nice 值,可以有40種不同級別的nice值。

nice 值越高: 表示優先級越低,例如+19,該進程容易將CPU 使用量讓給其他進程。
nice 值越低: 表示優先級越高,例如-20,該進程更不傾向於讓出CPU。

查看進程的nice級別
1. 使用top查看nice級別
NI: 實際nice級別

PR: 將nice級別顯示為映射到更大優先級隊列,-20映射到0,+19映射到39

3. 使用ps查看nice級別
[root@localhost ~]# ps axo pid,command,nice --sort=-nice
[root@localhost ~]# ps axo pid,command,nice,cls --sort=-nice
TS 表示該進程使用的調度策略為SCHED_OTHER

啟動具有不同nice級別的進程
啟動進程時,通常會繼承父進程的 nice級別,默認為0。
例如: nice --5 command

[root@localhost ~]# nice -n -5 sleep 6000 &

[root@localhost ~]# ps axo command,pid,nice |grep sleep


更改現有進程的nice級別
1. 使用top更改nice級別
r 調整進程的優先級(Nice Level) (-20高) ---0--- (19低)

2. 使用shell更改nice級別
[root@localhost ~]# sleep 7000 &
[3] 10089
[root@localhost ~]# renice -20 10089
10089: old priority 0, new priority -20







linux進程管理之優先級