一 进程优先级简介 Linux操作系统是一个多用户、多任务的操作系统,Linux系统中通常运行着非常多的进程。但是CPU在同一个时钟周期内只能运算一个指令。进程优先级决定了每个进程处理先后顺序。 二 示例 file:///C:/Users/marco/AppData/Local/Temp/enhtmlclip/Image.png PRI代表Priority NI代表Nice 这两个值都是优先级,数字越小代表该进程优先级越高
三 修改NI值时注意事项 NI的值的范围是-20到19; 普通用户调整NI值的范围是0到19,而且只能调整自己的进程; 普通用户只能调高NI值,而不能降低,如原本NI值为0,则只能调整为大于0; root用户才能设定进程NI值为负值,而且可以调整任何用户的进程; PRI(最终值)=PRI(原始值)+NI; 用户只能修改NI的值,不能直接修改PRI;
四 nice命令 nice [选项] 命令 nice命令可以给新执行的命令直接赋予NI值,但是不能修改已经存在进程的NI值。 选项: -n NI值:给命令赋予NI值 例如 nice -n -5 service httpd start
五 renice命令 renice [优先级] PID renice命令是修改已经存在进程的NI值得命令 例如 renice -10 2125
[root@localhost ~]# renice -10 8092 8092 (process ID) old priority 0, new priority -10 [root@localhost ~]# ps -le | grep httpd 4 S 0 8082 1 0 80 0 - 55479 poll_s ? 00:00:00 httpd 5 S 48 8091 8082 0 80 0 - 56000 inet_c ? 00:00:00 httpd 5 S 48 8092 8082 0 70 -10 - 56000 inet_c ? 00:00:00 httpd 5 S 48 8093 8082 0 80 0 - 56000 inet_c ? 00:00:00 httpd 5 S 48 8094 8082 0 80 0 - 56000 inet_c ? 00:00:00 httpd 5 S 48 8095 8082 0 80 0 - 56000 inet_c ? 00:00:00 httpd
六 修改proc目录下的文件 # cat /proc/2196/oom_score_adj #2196为进程pid, oom_score_adj存放oom kill 优先级数 0 # echo -15 > /proc/2196/oom_score_adj |