20181204进程优先级nice
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20181204进程优先级nice相关的知识,希望对你有一定的参考价值。
进程优先级nice
一.Linux 进程调度及多任务
每个 CPU(或 CPU 核心)在一个时间点上只能处理一个进程,通过时间片技术,Linux 实际能够运行的进程(和线程数)可以超出实际可用的 CPU 及核心数量。Linux 内核进程调度程序将多个进程在 CPU 核心上
快速切换,从而给用户多个进程在同时运行的印象。
二.相对优先级 nice
由于不是每个进程都与其他进程同样重要,可告知进程调度程序为不同的进程使用不同的调度策略。常规
系统上运行的大多数进程所使用的调度策略为 SCHED_OTHER (也称为 SCHED_NORMAL),但还有其它一些
调度策略用于不同的目的。
SCHED_OTHER 调度策略运行的进程的相对优先级称为进程的 nice 值,可以有 40 种不同级别的 nice 值。
nice 值越高: 表示优先级越低,例如+19,该进程容易将CPU使用量让给其他进程。
nice 值越低: 表示优先级越高,例如-20,该进程更不倾向于让出CPU。
三.查看进程的 nice 级别
1.使用 top 查看 nice 级别
NI: 实际 nice 级别
PR: 将 nice 级别显示为映射到更大优先级队列,-20 映射到 0,+19 映射到 39
2.使用 ps 查看 nice 级别
[[email protected] ~]# ps axo pid,command,nice --sort=-nice 自定义显示进程
[[email protected] ~]# ps axo pid,command,nice,cls --sort=-nice
TS 表示该进程使用的调度策略为 SCHED_OTHER
四.启动具有不同 nice 级别的进程
启动进程时,通常会继承父进程的 nice 级别,默认为 0。
[[email protected] ~]# nice -n -5 sleep 6000 &
[[email protected] ~]# ps axo command,pid,nice |grep sleep
sleep 6000 2652 0
sleep 6000 2660 -5
sleep 7000 2803 0
sleep 8000 2806 -20
sleep 6000 2810 -5
grep sleep 2812 0
[[email protected] ~]#nice -n -20 /etc/init.d/httpd restart 启动以后,加优先级
[[email protected] ~]# ps axo pid,command,nice,cls |grep httpd
11116 /usr/sbin/httpd -20 TS
11119 /usr/sbin/httpd -20 TS
11120 /usr/sbin/httpd -20 TS
11121 /usr/sbin/httpd -20 TS
11122 /usr/sbin/httpd -20 TS
11123 /usr/sbin/httpd -20 TS
11124 /usr/sbin/httpd -20 TS
11125 /usr/sbin/httpd -20 TS
11126 /usr/sbin/httpd -20 TS
五.更改现有进程的 nice 级别
1.使用 top 更改 nice 级别
r 调整进程的优先级(Nice Level) (-20 高) ---0--- (19 低)
2.使用 shell 更改 nice 级别
[[email protected] ~]# sleep 7000 &
[3] 10089
[[email protected] ~]# renice -20 10089
10089: old priority 0, new priority -20
以上是关于20181204进程优先级nice的主要内容,如果未能解决你的问题,请参考以下文章