Linux之renice和nice調整進程的優先級

前言:
bash

    有時咱們須要執行一個程序,而且這個程序比較重要並且比較緊急,而CPU空閒的資源也比較少,這個時候咱們就須要來調整這個程序的進程優先級,來給這個程序分配更多的CPU資源而且優先執行。ide

    Linux下的renice和nice都是調整進程優先級的工具,優先級的值的範圍是(-20至19),-20爲最高優先級,19爲最低優先級,默認程序進程的優先級爲0。
工具

一、renice命令測試

    1)功能簡介spa

    renice命令能夠調整Linux中正在運行的進程的優先級。
orm

[root@vms002 www]# man renice
NAME
       renice - alter priority of running processes    #更改正在運行的進程的優先級

SYNOPSIS
       renice [-n] priority [-gpu] identifier...

    2)經常使用選項
進程

選項資源

含義
it

-h | --help 顯示幫助文本信息並退出
-v | --version
顯示版本信息並退出
-n | --priority 指定nice增長值(優先級值)
-u | --user=name 將參數解釋爲用戶名或用戶ID
-g | --pgrp=gid 將參數解釋爲進程組ID
-p | --pid= 將參數解釋爲進程ID(默認)

    3)實例
io

①  經過PID修改指令cat優先級爲-20

#查看指令cat的優先級值以及PID號

#測試數據
[root@vms002 www]# cat /dev/zero > /dev/null &
[1] 80886
#查看
[root@vms002 www]# ps -l|egrep "NI|cat"
F S   UID    PID   PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
0 R     0  80886  36107 99  80   0 - 26978 -      pts/2    00:02:52 cat

結果:以上得出指令cat的優先級的值爲0(NI爲優先級值),PID號爲:80886。

#經過PID修改指令cat優先級爲-20

[root@vms002 www]# renice -n -20 -p 80886
80886 (進程 ID) 舊優先級爲 0,新優先級爲 -20

#再次查看指令cat的優先級值,看指令的優先級是否修改爲功

[root@vms002 www]# ps -l|egrep "NI|cat"
F S   UID    PID   PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
0 R     0  80886  36107 99  60 -20 - 26978 -      pts/2    00:26:37 cat

結果:經過以上顯示指令cat的優先級爲-20,表示優先級已修改爲功。

②  修改用戶root的優先級爲-10

#查看進程優先級,當前進程都是root用戶(當前用戶)的,優先級都是爲0

[root@vms002 /]# ps -ao "%p%y$x%c%n"
   PID TTY      COMMAND          NI
  2678 pts/0    su                0
  2686 pts/0    bash              0
 32190 pts/0    dbus-launch       0
 80886 pts/2    cat               0
 81658 pts/1    su                0
 81659 pts/1    bash              0
 81709 pts/1    su                0
 81715 pts/1    bash              0
 81945 pts/1    ps                0

#修改用戶root優先級爲-10

[root@vms002 /]# renice -n -10 -u root
0 (用戶 ID) 舊優先級爲 0,新優先級爲 -10

#查看當前用戶root的進程優先級

[root@vms002 /]# ps -ao "%p%y%x%c%n"
   PID TTY          TIME COMMAND          NI
  2678 pts/0    00:00:00 su                0
  2686 pts/0    00:00:00 bash            -10
 32190 pts/0    00:00:00 dbus-launch     -10
 80886 pts/2    01:01:03 cat             -10
 81658 pts/1    00:00:00 su              -10
 81659 pts/1    00:00:00 bash              0
 81709 pts/1    00:00:00 su                0
 81715 pts/1    00:00:00 bash            -10
 81956 pts/1    00:00:00 ps              -10

結果:修改root用戶優先級成功。

二、nice命令

    1)功能簡介

    nice命令能夠在啓動命令時設置優先級。

[root@vms002 /]# man nice
NAME
       nice - run a program with modified scheduling priority   #運行具備修改調度優先級的程序

SYNOPSIS
       nice [OPTION] [COMMAND [ARG]...]

    2)經常使用選項

選項 含義
-n 調整優先級,默認值爲10
--help 顯示此幫助信息並退出
--version 顯示版本信息並退出

    3)實例

    #執行cat /dev/zero > /dev/null & 命令並同時設置優先級爲-5

#執行命令
[root@vms002 www]# nice -n -5 cat /dev/zero > /dev/null &
[1] 82338
#查看指令cat優先級是否設置成功
[root@vms002 www]# ps -l|egrep "NI|cat"
F S   UID    PID   PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 R     0  82338  36107 99  65 -15 - 26978 -      pts/2    00:00:14 cat

三、總結

    1)renice命令:設置正在運行的進程的優先級,-n設置優先級,-p指定PID設置優先級,-u指定用戶設置優先級;

    2)nice命令:在啓動程序時設置優先級。

相關文章
相關標籤/搜索