shell_70.Linux调整谦让度

调整谦让度

1.nice 命令

(1)nice 命令允许在启动命令时设置其调度优先级。要想让命令以更低的优先级运行,只需用nice 命令的-n 选项指定新的优先级即可:

复制代码
$ nice -n 10 ./jobcontrol.sh > jobcontrol.out & 
[2] 16462 
$ 
$ ps -p 16462 -o pid,ppid,ni,cmd 
 PID PPID NI CMD 
 16462 1630 10 /bin/bash ./jobcontrol.sh 
$ 

注意,nice 命令和要启动的命令必须出现在同一行中。ps 命令的输出证实,谦让度(NI列)已经调整到了 10。

(2)nice 命令使得脚本以更低的优先级运行。但如果想提高某个命令的优先级,那么结果可能会让你大吃一惊:

复制代码
$ nice -n -5 ./jobcontrol.sh > jobcontrol.out & 
[2] 16473 
$ nice: cannot set niceness: Permission denied 
$ ps -p 16473 -o pid,ppid,ni,cmd 
 PID PPID NI CMD 
 16473 1630 0 /bin/bash ./jobcontrol.sh 
$ 

nice 命令会阻止普通用户提高命令的优先级。注意,即便提高其优先级的操作没有成功,指定的命令依然可以运行。

只有 root 用户或者特权用户才能提高作业的优先级。

(3)nice 命令的-n 选项并不是必需的,直接在连字符后面跟上优先级也可以:

复制代码
$ nice -10 ./jobcontrol.sh > jobcontrol.out & 
[2] 16520 
$ 
$ ps -p 16520 -o pid,ppid,ni,cmd 
 PID PPID NI CMD 
 16520 1630 10 /bin/bash ./jobcontrol.sh 
$ 

2.renice 命令

复制代码
$ ./jobcontrol.sh > jobcontrol.out & 
[2] 16642 
$ 
$ ps -p 16642 -o pid,ppid,ni,cmd 
 PID PPID NI CMD 
 16642 1630 0 /bin/bash ./jobcontrol.sh 
$ 
$ renice -n 10 -p 16642 
16642 (process ID) old priority 0, new priority 10 
$ 
$ ps -p 16642 -o pid,ppid,ni,cmd 
 PID PPID NI CMD 
 16642 1630 10 /bin/bash ./jobcontrol.sh 
$ 

(1)有时候,你想修改系统中已运行命令的优先级。renice 命令可以帮你搞定。它通过指定运行进程的 PID 来改变其优先级:

复制代码
$ ./jobcontrol.sh > jobcontrol.out & 
[2] 16642 
$ 
$ ps -p 16642 -o pid,ppid,ni,cmd 
 PID PPID NI CMD 
 16642 1630 0 /bin/bash ./jobcontrol.sh 
$ 
$ renice -n 10 -p 16642 
16642 (process ID) old priority 0, new priority 10 
$ 
$ ps -p 16642 -o pid,ppid,ni,cmd 
 PID PPID NI CMD 
 16642 1630 10 /bin/bash ./jobcontrol.sh 
$ 

renice 命令会自动更新运行进程的调度优先级。和 nice 命令一样,renice 命令对于非特权用户也有一些限制:

只能对属主为自己的进程使用 renice 且只能降低调度优先级。但是,root 用户和特权用户可以使用 renice 命令对任意进程的优先级做任意调整。

相关推荐
SPC的存折6 分钟前
1、MySQL故障排查与运维案例
linux·运维·服务器·数据库·mysql
Run_Teenage8 分钟前
Linux:认识信号,理解信号的产生和处理
linux·运维·算法
Deitymoon20 分钟前
linux——TCP服务器获取客户端IP地址
linux·服务器·tcp/ip
CDN36022 分钟前
高防服务器磁盘 / CPU 爆满?攻击引流与资源扩容实战
运维·服务器·网络协议
小贾要学习23 分钟前
【Linux】应用层自定义协议与序列化
linux·服务器·c++·json
white-persist25 分钟前
【vulhub spring CVE-2018-1270】CVE-2018-1270 Spring Messaging 远程命令执行漏洞 完整复现详细分析解释
java·服务器·网络·数据库·后端·python·spring
freewlt26 分钟前
OpenClaw 工作流自动化实战:打造你的智能定时任务中心
运维·servlet·自动化
Amnesia0_029 分钟前
理解Linux中的OS管理和进程属性
linux·运维·服务器
十五年专注C++开发29 分钟前
cpolar(极点云): 一款主流的内网穿透工具
linux·windows·cpolar·穿透
徒 花29 分钟前
HCIP学习05 链路聚合(Eth-Trunk)+ VRRP
服务器·网络·学习·hcip