一、nice命令介绍
1.1 nice命令简介
nice
命令在Linux系统中是一个用于调整进程优先级的工具。通过nice值,用户可以控制程序运行时占用CPU资源的相对比例,从而实现对系统资源分配的微调。高的nice值表示更低的优先级,意味着程序会更少地占用CPU时间,给其他程序更多机会;反之,低的nice值表示更高的优先级。默认情况下,大部分程序以0的nice值运行。
1.2 进程优先级介绍
调度优先级决定对CPU的访问,进程的nice值影响优先级。nice值为-20到19 ,缺省为0,低nice值意味着高CPU优先级。
二、nice命令基本语法
2.1 nice命令的help帮助信息
查看 nice命令的help帮助信息
[root@jeven ~]# nice --help
Usage: nice [OPTION] [COMMAND [ARG]...]
Run COMMAND with an adjusted niceness, which affects process scheduling.
With no COMMAND, print the current niceness. Niceness values range from
-20 (most favorable to the process) to 19 (least favorable to the process).
Mandatory arguments to long options are mandatory for short options too.
-n, --adjustment=N add integer N to the niceness (default 10)
--help display this help and exit
--version output version information and exit
NOTE: your shell may have its own version of nice, which usually supersedes
the version described here. Please refer to your shell's documentation
for details about the options it supports.
GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
For complete documentation, run: info coreutils 'nice invocation'
nice [-n adjust] command
-n adjust
:可选参数,指定进程的nice值。adjust值范围通常是-20到19,-20(对进程最有利)到19(对进程最不利)。如果不指定,默认调整值为10。command
:需要以指定nice值运行的命令或程序。
2.2 nice命令选项解释
nice
命令用途:调整进程的优先级,从而影响其调度。如果不指定命令,则打印当前的优先级。优先级值范围从-20(对进程最有利)到19(对进程最不利)。
命令格式:nice [选项] [命令 [参数]...]
选项说明:
选项 | 作用 | 等效短选项 | 默认值 |
---|---|---|---|
-n , --adjustment=N |
将整数N添加到优先级(默认为10) | -n |
10 |
--help |
显示帮助信息并退出 | ||
--version |
输出版本信息并退出 |
注意:
- 您的shell可能有自己版本的
nice
命令,该版本通常会替代这里描述的版本。详情请参阅shell的文档。 - GNU coreutils在线帮助:http://www.gnu.org/software/coreutils/
- 完整文档,请运行:
info coreutils 'nice invocation'
三、nice命令的基本使用
3.1 查看进程优先级
查看当前进程的优先级
[root@jeven ~]# ps -eo pid,comm,nice --sort=-nice |head
PID COMMAND NI
37 khugepaged 19
8992 alsactl 19
17633 tracker-extract 19
17642 tracker-miner-a -
17653 tracker-miner-f 19
17660 tracker-miner-u -
36 ksmd 5
9037 rtkit-daemon 1
1 systemd 0
3.2 使用nice启动进程
使用nice命令,以优先级6打开file.txt文件。
nice -n 6 vim file.txt
另外开启一个终端,查看vim进程的优先级。
[root@jeven ~]# ps -eo pid,comm,nice --sort=-nice |grep vim
21331 vim 6
16166 vim 0
也可以通过进程的PID来查询
[root@jeven ~]# pidof vim 21331 16166 [root@jeven ~]# ps -p 21331 -o pid,ni,cmd PID NI CMD 21331 6 vim file.txt
3.3 提高优先级
- 后台运行一个进程
ping www.baidu.com > ping_output.txt &
- 查看进程优先级
ps -p 22869 -o pid,ni,cmd
- 调整优先级
要调整一个已在后台运行的进程的优先级(nice值)为10,你可以使用
renice
命令。首先,确保你已经获取了该进程的PID,正如你示例中提到的PID为22869。接下来,执行以下命令来进行调整。这条命令中,-n 10
指定了新的nice值为10,-p 22869
指定了要调整优先级的进程PID。执行后,系统会修改该进程的优先级。
renice -n 10 -p 22869
四、注意事项
- 权限限制: 普通用户不能将nice值设置为负数或大幅度提高优先级,这是为了防止非授权用户抢占系统资源。
- 调度策略: nice仅影响进程的CPU时间分配,并不保证绝对的执行顺序。Linux内核还使用其他调度策略,如实时优先级(通过chrt命令设置),来进一步管理进程的执行顺序。
- 监控和调整: 使用如top、ps -eo pid,comm,nice,%cpu或htop等工具可以查看和调整正在运行的进程的nice值。
- 通过合理使用nice命令,系统管理员和高级用户可以更好地控制系统资源的分配,确保关键任务或对响应时间敏感的应用程序能够获得足够的处理能力。