zoukankan      html  css  js  c++  java
  • 到底应该怎么理解“平均负载”?

    极客时间-倪鹏飞 课程《Liunx性能优化实战》学习专栏

    ...............................................................................................

    一、什么是平均负载

    正确定义:单位时间内,系统中处于可运行状态和不可中断状态的平均进程数。
    错误定义:单位时间内的cpu使用率。
    可运行状态的进程:正在使用cpu或者正在等待cpu的进程,即ps aux命令下STAT处于R状态的进程
    不可中断状态的进程:处于内核态关键流程中的进程,且不可被打断,如等待硬件设备IO响应,ps命令D状态的进程
    理想状态:每个cpu上都有一个活跃进程,即平均负载数等于cpu数
    过载经验值:平均负载高于cpu数量70%的时候

    二、相关命令
    cpu核数: lscpu、 grep 'model name' /proc/cpuinfo | wc -l
    显示平均负载:uptime、top,显示的顺序是最近1分钟、5分钟、15分钟,从此可以看出平均负载的趋势
    watch -d uptime: -d会高亮显示变化的区域
    strees: 压测命令,--cpu cpu压测选项,-i io压测选项,-c 进程数压测选项,--timeout 执行时间
    mpstat: 多核cpu性能分析工具,-P ALL监视所有cpu
    pidstat: 进程性能分析工具,-u 显示cpu利用率

    三、平均负载与cpu使用率的区别
    CPU使用率:单位时间内cpu繁忙情况的统计
    情况1:CPU密集型进程,CPU使用率和平均负载基本一致
    情况2:IO密集型进程,平均负载升高,CPU使用率不一定升高
    情况3:大量等待CPU的进程调度,平均负载升高,CPU使用率也升高

    四、平均负载过高时,如何调优
    工具:stress、sysstat,yum即可安装
    1. CPU密集型进程case:
    mpstat -P ALL 5: -P ALL表示监控所有CPU,5表示每5秒刷新一次数据,观察是否有某个cpu的%usr会很高,但iowait应很低
    pidstat -u 5 1:每5秒输出一组数据,观察哪个进程%cpu很高,但是%wait很低,极有可能就是这个进程导致cpu飚高
    2. IO密集型进程case:
    mpstat -P ALL 5: 观察是否有某个cpu的%iowait很高,同时%usr也较高
    pidstat -u 5 1:观察哪个进程%wait较高,同时%CPU也较高
    3. 大量进程case:
    pidstat -u 5 1:观察那些%wait较高的进程是否有很多

    5. linux各个抽象层次和模块的常用分析工具

    6. 场景一:CPU 密集型进程

    7. 场景二:I/O 密集型进程

    8. 场景三:大量进程的场景

  • 相关阅读:
    Ubuntu 14.04 LTS Server 无法挂载光盘 启动initramfs等问题
    Linux的交叉编译 及configure配置
    大话设计模式读书笔记(五) 代理模式
    大话设计模式读书笔记(三) 单一职责原则和开放-封闭原则和依赖倒转原则
    大话设计模式读书笔记(二) 策略模式
    Java NIO(一) 初步理解NIO
    大话设计模式读书笔记(一) 简单工厂模式
    多线程设计模式(一) Single Threaded Execution
    多线程详细解析(二) 线程的共享互斥与线程的协调
    多线程详细解析(一) 创建线程
  • 原文地址:https://www.cnblogs.com/mysky007/p/12306351.html
Copyright © 2011-2022 走看看