码迷,mamicode.com
首页 > 系统相关 > 详细

linux系统进程优先级

时间:2019-04-06 18:46:10      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:virt   time   意思   进程启动   mem   lin   linux系统   优先级   command   

linux系统进程优先级

一、什么是进程优先级?
? ? ? ?每个进程都会有相应的优先级,优先级决定程序何时运行。优先级值越低,优先级就越高,就越快被调度程序选中。
? ? ? ?另外,优先级还影响分配给进程的时间片长短。重要的进程,应该分配多一些cpu时间片,好让其尽快完成任务。所有的进程都会有机会运行,但高优先级重要的进程会获取更多的cpu执行时间。

二、优先级取值范围
? ? ? ?在linux系统中,进程优先级的取值范围是0-139,而这个值又是由另外两个值组成的,一个是代表实时进程(realtime)优先级范围是[0,99],另外一个是代表非实时进程,取值范围是[100,139]。
? ? ? ?所以,Linux进程实际上实现了140个优先级范围,取值范围是从0-139,这个值越小,优先级越高。

  • 动态优先级:实时进程优先级[0,99],该区间被称为动态优先级,优先级随着进程执行情况的变化而改变,以便获得更好的调度性能。
  • 静态优先级:代表非实时进程优先级[100,139],被称为静态优先级,该值不会随着时间而进行改变,但系统可以通过nice命令来进行修改。

三、PRI值和NICE值

  1. PRI值
    ? ? ? ?PRI即进程的优先级,此值越小进程的优先级别越高。PRI值越小越快被cpu调度程序执行,那么加入nice值后,将会使得PRI变为:PRI(new)=PRI(old)+nice。由此看出,PRI是根据NICE排序的,规则是NICE越小PRI值越小,其优先级会变高。

  2. NICE值
    ? ? ? ?它是反应一个进程“优先级”状态的值,其取值范围是-20至19,一共40个级别。它对应于静态优先级的[100,139]这个区间,进程启动后默认的nice值为0,则其对应的优先级为120。
    ? ? ? ?NICE值虽然不是priority,但是它确实可以影响进程的优先级。

  3. ps和top命令
    查看PRI和NICE值,它们代表什么意思呢?
    ps命令

    [root@centos7 ~]#ps -elf

    F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
    4 S root 1 0 0 80 0 - 32063 ep_pol 14:35 ? 00:00:02 /usr/lib/s
    1 S root 2 0 0 80 0 - 0 kthrea 14:35 ? 00:00:00 [kthreadd]
    1 S root 3 2 0 80 0 - 0 smpboo 14:35 ? 00:00:01 [ksoftirqd
    1 S root 5 2 0 60 -20 - 0 worker 14:35 ? 00:00:00 [kworker/0
    1 S root 6 2 0 80 0 - 0 worker 14:35 ? 00:00:00 [kworker/u
    ......


    top命令

    PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

    1 root 20 0 128252 6804 4176 S 0.0 0.3 0:02.79 systemd
    2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd
    3 root 20 0 0 0 0 S 0.0 0.0 0:01.63 ksoftirqd/0
    ......


    总结:
            top中的PR表示优先级,但是跟上述的值不是直接对等的。在top中,实时优先级的[0,99]没有具体的表示。静态优先级和top中的优先级关系为top_PR = static_Priority - 100也就是说,top中的PR取值为[0,39],对应优先级[100,139]。
            ps命令中,ps_PRI = static_priority - 40,PRI的取值范围为[-40,99],也就是说,ps中PRI值为80等价于nice值为0,等价于静态优先级的120。


linux系统进程优先级

标签:virt   time   意思   进程启动   mem   lin   linux系统   优先级   command   

原文地址:https://blog.51cto.com/13932385/2374758

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!