zoukankan      html  css  js  c++  java
  • ④linux 进程优先级

    进程的优先级[进阶]

    1.什么优先级
    优先级指的是优先享受资源,比如排队买票时,军人优先、老人优先。等等

    2.为什么要有系统优先级
    举个例子: 海底捞火锅正常情况下响应就特别快,那么当节假日来临时人员突增则会导致处理请求特别慢,那么假设我是海底捞VIP客户(最高优先级),无论门店多么繁忙,我都不用排队,海底捞人员会直接服务于我,满足我的需求。至于没有VIP的人员(较低优先级)则进入排队等待状态。(PS: 至于等多久,那.....)

    3.系统中如何给进程配置优先级?
    在启动进程时,为不同的进程使用不同的调度策略。

    nice 值越高: 表示优先级越低,例如+19,该进程容易将CPU 使用量让给其他进程。
    nice 值越低: 表示优先级越高,例如-20,该进程更不倾向于让出CPU。
    
    1. 使用top或ps命令查看进程的优先级
    #1.使用top可以查看nice优先级。  NI: 实际nice级别,默认是0。 PR: 显示nice值,-20映射到0,+19映射到39
    PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
    1083 root      20   0  298628   2808   1544 S  0.3  0.1   2:49.28 vmtoolsd
    5    root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:+
    
    #2.使用ps查看进程优先级
    [root@m01 ~]# ps axo command,nice |grep sshd|grep -v grep
    /usr/sbin/sshd -D             0
    sshd: root@pts/2              0
    
    1. nice指定程序的优先级。语法格式 nice -n 优先级数字 进程名称

    1.开启vim并且指定程序优先级为-5

    [root@m01 ~]# nice -n -5 vim &
    [1] 98417

    2.查看该进程的优先级情况

    [root@m01 ~]# ps axo pid,command,nice |grep 98417
    98417 vim -5

    1. renice命令修改一个正在运行的进程优先级。语法格式 renice -n 优先级数字 进程pid
    #1.查看sshd进程当前的优先级状态
    [root@m01 ~]# ps axo pid,command,nice |grep 折叠shd
     70840 sshd: root@pts/2              0
     98002 /usr/sbin/sshd -D             0
     
    #2.调整sshd主进程的优先级
    [root@m01 ~]# renice -n -20 98002
    98002 (process ID) old priority 0, new priority -20
    
    #3.调整之后记得退出终端
    [root@m01 ~]# ps axo pid,command,nice |grep 折叠shd
     70840 sshd: root@pts/2              0
     98002 /usr/sbin/sshd -D           -20
    [root@m01 ~]# exit
    
    #4.当再次登陆sshd服务,会由主进程fork子进程(那么子进程会继承主进程的优先级)
    [root@m01 ~]# ps axo pid,command,nice |grep 折叠shd
     98002 /usr/sbin/sshd -D           -20
     98122 sshd: root@pts/0            -20
    

    生产案例、Linux出现假死,怎么办,又如何通过nice解决?

  • 相关阅读:
    MVC+EF 理解和实现仓储模式和工作单元模式 MVC+EF 理解和实现仓储
    ANDROID中BROADCASTRECEIVER的两种注册方式(静态和动态)详解
    企业微信通讯录组件一个机制
    linq查询DataTable中的某列去重数据
    C# 判断文件流类型
    js中使用settimeout的问题
    一个做流程的开源库
    javascript判断两个日期是否相等
    开发小贴士
    zepto.js与jquery.js
  • 原文地址:https://www.cnblogs.com/yangtao416/p/14518393.html
Copyright © 2011-2022 走看看