美文网首页
平均负载

平均负载

作者: 牛牛_735d | 来源:发表于2019-10-10 21:45 被阅读0次
    uptime:
     输出: 11:39:32 up 13 days,  1:51, 18 users,  load average: 6.21, 5.86, 4.91
     说明: 当前时间、系统运行时间、正在登陆用户数、最近1min、5min、15min的平均负载 load average
     
    

    平均负载: 是单位时间内、系统处于可运行状态和不可中断状态的平均进程数, 即: 平均活跃进程数、和CPU的使用率无直接关系

    可运行状态的进程: 正在使用CPU或者等待CPU的进程、ps的R(Runnning / Runable) 状态

    不可中断状态: 正处于内核关键流程中的进程、且这些流程是不可打断的、eg. 等待硬件设备的IO响应、ps的D状态(Uninterruptible Sleep,即: Disk Sleep)

    eg. 当一个进程向磁盘写数据时, 为了保证数据一致性、在得到磁盘回复前、是不能被打断的、若被打断, 容易出现磁盘数据和进程数据不一致

    其实: 不可中断状态其实是系统堆进程和硬件设备的一种保护机制

    平均负载合理性评估

    平均负载为2怎么解读 ?

    1. 在只有2个CPU的系统上、意味着CPU刚好可以全部占用
    2. 在4个CPU的系统上、意味着有50%的空闲
    3. 在1个CPU的系统上、意外着会有一半的进程竞争不到CPU
    

    CPU核数查看

    cat /proc/cpuinfo | grep 'model name' | wc -l
    lscpu
    

    经验值: cpu 的负载到达70%的时候、就需要关注了

    平均负载与CPU使用率

    1. 平均负载: 单位时间内处于可运行状态和不可中断状态的进程数
       包含 正在使用CPU的进程 + 等待CPU的进程 + 等待io的进程
    2. CPU使用率: 单位时间内CPU繁忙情况的统计、不一定与平均负载对应
       eg. cpu密集型、使用大量CPU会导致load升高、 - 变化趋势一致
           io密集型、等待io也导致load升高、CPU使用率不一定很高
           
    

    案例分析

    一、CPU密集型进程

    终端一:
    stress --cpu 1 --timeout 600
    --cpu CPU压力测试
    
    终端二:
    watch -d uptime 
    -d: 高亮显示变化区域
    
    终端三:
    mpstat -P ALL 5
    -P ALL: 表示监控所有CPU
    5表示间隔5s输出一组数据
    
    终端四:
    pidstat -u 5 1 间隔5s输出一组数据、查找CPU高的线程
    
    
    stress.png

    二、IO密集型进程

    查看方式同上

    相关文章

      网友评论

          本文标题:平均负载

          本文链接:https://www.haomeiwen.com/subject/azlapctx.html