Linux命令之nice和renice
(1).nice命令
nice [选项] [命令 [参数]]
在执行程序之前,改变优先级。以调整过的优先级运行命令。如果没有给出命令,就显示当前的优先级。优先级范围从-20到19,越小优先级越高,默认为0。
注意:系统允许root用户设置负数优先级,以及减小现有进程的优先级数值大小。对普通用户仅允许设置正数优先级,并且只能增大现有进程的优先级数值大小。
选项:
-n,--adjustment=N 将整数N添加到优先级(指定优先级) --help 显示帮助信息 --version 显示版本信息
(2).renice命令
renice [-n] 优先级 [-gpu] 标识符...
renice改变一个或多个正在运行的进程的优先级。
选项:
-n,--priority <priority> 指定标识符的计划优先级。该选项是可选的,但使用时必须为第一个参数。 -g,--pgrp <pgid>... 标识符指定为进程组ID -u,--user <name_or_uid>... 标识符指定为用户名或用户ID -p,--pid <pid>... 标识符指定为进程ID(默认) -h,--help 显示帮助信息 -V,--version 显示版本信息
(3).实例
[xf@xuexi ~]$ nice -n 5 vim a.txt [1]+ 已停止 nice -n 5 vim a.txt [xf@xuexi ~]$ ps -aux | grep vim xf 12423 1.1 0.2 151796 5368 pts/0 TN 16:22 0:00 vim a.txt xf 12431 0.0 0.0 112724 988 pts/0 S+ 16:22 0:00 grep --color=auto vim [xf@xuexi ~]$ top -p 12423 top - 16:24:09 up 2:29, 2 users, load average: 0.00, 0.01, 0.05 Tasks: 1 total, 0 running, 0 sleeping, 1 stopped, 0 zombie %Cpu(s): 6.7 us, 1.7 sy, 0.0 ni, 91.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 2028116 total, 524308 free, 733600 used, 770208 buff/cache KiB Swap: 2097148 total, 2097148 free, 0 used. 1064204 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 12423 xf 25 5 151796 5368 2764 T 0.0 0.3 0:00.08 vim [xf@xuexi ~]$ renice -n 10 -p 12423 12423 (进程 ID) 旧优先级为 5,新优先级为 10 [xf@xuexi ~]$ top -p 12423 top - 16:25:19 up 2:30, 2 users, load average: 0.14, 0.06, 0.06 Tasks: 1 total, 0 running, 0 sleeping, 1 stopped, 0 zombie %Cpu(s): 8.3 us, 1.7 sy, 0.0 ni, 90.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 2028116 total, 524888 free, 733000 used, 770228 buff/cache KiB Swap: 2097148 total, 2097148 free, 0 used. 1064768 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 12423 xf 30 10 151796 5368 2764 T 0.0 0.3 0:00.08 vim [xf@xuexi ~]$ renice -8 -p 12423 renice: 设置 12423 的优先级失败(进程 ID): 权限不够 [xf@xuexi ~]$ renice -11 -p 12423 renice: 设置 12423 的优先级失败(进程 ID): 权限不够 [xf@xuexi ~]$ renice 8 -p 12423 renice: 设置 12423 的优先级失败(进程 ID): 权限不够 [xf@xuexi ~]$ renice 11 -p 12423 12423 (进程 ID) 旧优先级为 10,新优先级为 11
可以看到非root用户可以将优先级降低,但不能提高,更不能是负数。