Linux之renice和nice调整进程的优先级

前言:

    有时我们需要执行一个程序,并且这个程序比较重要而且比较紧急,而CPU空闲的资源也比较少,这个时候我们就需要来调整这个程序的进程优先级,来给这个程序分配更多的CPU资源并且优先执行。

    Linux下的renice和nice都是调整进程优先级的工具,优先级的值的范围是(-20至19),-20为最高优先级,19为最低优先级,默认程序进程的优先级为0。

1、renice命令

    1)功能简介

    renice命令可以调整Linux中正在运行的进程的优先级。

[root@vms002 www]# man renice
NAME
       renice - alter priority of running processes    #更改正在运行的进程的优先级

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

    2)常用选项

选项

含义

-h | --help 显示帮助文本信息并退出
-v | --version
显示版本信息并退出
-n | --priority 指定nice增加值(优先级值)
-u | --user=name 将参数解释为用户名或用户ID
-g | --pgrp=gid 将参数解释为进程组ID
-p | --pid= 将参数解释为进程ID(默认)

    3)实例

①  通过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用户优先级成功。

2、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

3、总结

    1)renice命令:设置正在运行的进程的优先级,-n设置优先级,-p指定PID设置优先级,-u指定用户设置优先级;

    2)nice命令:在启动程序时设置优先级。


猜你喜欢

转载自blog.51cto.com/13716812/2405770