一、对CPU密集型进程进行模拟,具体如下:

  第一个终端
    在第一个终端运行 stress 命令,模拟一个 CPU 使用率 100% 的场景:stress --cpu 1 -- timeout 600

    

  第二个终端
    运行 uptime 查看系统平均负载情况,watch -d 参数表示高亮显示变化的区域:watch -d uptime

    

    1 分钟的平均负载会慢慢增加到 1以上。

  第三个终端

    运行 mpstat 查看 CPU 使用率的变化情况:mpstat -P ALL 5 (-P ALL 表示监控所有 CPU,后面数字 5 表示间隔 5 秒后输出一组数据)

    

    仅有一个 CPU 的使用率接近 100%,但它的 iowait 只有 0,这说明,平均负载的升高正是由于 CPU 使用率为 100%。

  二、分析具体导致CPU使用率这么高的进程

    通过模拟,我们知道导致CPU使用率这么高的进程就是stress,但是在实际生产中就得通过pidstat工具进行查询了。下面就利用该工具进行查询过程的解析:

    首先简述下pidstat的选项功能:

      # pidstat [ 选项 ] [ <时间间隔> ] [ <次数> ]
      # -u:默认的参数,显示各个进程的cpu使用统计
      # -r:显示各个进程的内存使用统计
      # -d:显示各个进程的IO使用情况
      # -p:指定进程号
      # -w:显示每个进程的上下文切换情况
      # -t:显示选择任务的线程的统计信息外的额外信息

    详细功能通过man pidstat可以查阅:

      

    本案例中使用pidstat 5 1

      

    通过上图可以分析出CPU使用%98以上的是pid=5870的命令stress。

  综合上述,通过sysstat工具集,可以明确分析出CPU密集型进程导致CPU平均负载率处于高水位线的“罪魁祸首”。 同理操作可以分析出其他类型导致CPU平均负载率高的进程。如下模拟大量进程导致的CPU平均负载率过高:

  首先查看CPU个数:lscpu

    

  第一个终端:stress -c 8 --timeout 600

    

  第二个终端:watch -d uptime
    

  第三个终端:pidstat -u 5 1

    

    可以看出,8 个进程在争抢 2 个 CPU,每个进程等待CPU 的时间(也就是代码块中的 %wait 列)高达 75%这些超出 CPU 计算能力的进程,最终导致 CPU 过载。


    

  

CPU平均负载率之stress模拟CPU密集型进程的更多相关文章

  1. Linux-CPU优化之平均负载率

    一.平均负载率定义 平均负载是指单位时间内,系统处于可运行状态 和不可中断状态 的平均进程数,也就是平均活跃进程数,它和CPU 使用率并没有直接关系. 可运行状态的进程:是指正在使用 CPU 或者正在 ...

  2. CPU优化之平均负载率之辅助工具

    前面介绍了平均负载均衡的一些内容,那实际应用中如何查看,分析性能瓶颈呢?下面介绍相关的辅助工具. 一.stress stress是Linux 系统压力测试工具,其通过异常进程模拟平均负载升高的场景(前 ...

  3. CPU平均负载 load average

    平均负载是指上一分钟同时处于就绪状态的平均进程数.在CPU中可以理解为CPU可以并行处理的任务数量,就是CPU个数X核数.如果CPU Load等于CPU个数乘以核数,那么就说CPU正好满负载,再多一点 ...

  4. 什么是CPU平均负载

    所属分类:运维教程 平均负载是指上一分钟同时处于就绪状态的平均进程数.在CPU中可以理解为CPU可以并行处理的任务数量,就是CPU个数X核数.如果CPU Load等于CPU个数乘以核数,那么就说CPU ...

  5. uptime详解,最通俗的说明了cpu平均负载

    今天又个网友问uptime的三个平均负载值具体要怎么理解,发现要自己解释还真不知道怎么表达~~~~,下面到网上找了篇文章给大家分享:   uptime命令,有两大用处,一个是看您的机器的运行时间,另一 ...

  6. linux平均负载的理解及原因排查

    当系统响应缓慢时,一般会用top或uptime命令查看系统负载是否过高. 例如输入uptime命令显示如下图,其中23:47:19表示现在的时间,up 260 days,14:39表示系统运行了多久, ...

  7. Linux性能优化从入门到实战:02 CPU篇:平均负载

    每次发现系统变慢时,我们通常做的第一件事,就是执行 top 或 uptime 命令: $ uptime 22:22:17 up 2 days, 20:14, 1 user, load average: ...

  8. CPU使用率和平均负载

    转载: https://mp.weixin.qq.com/s?__biz=MzU4NzU0MDIzOQ==&mid=2247487782&idx=3&sn=3f04bb053d ...

  9. 理解 uptime 的:“平均负载”? 如何模拟测试

    每次发现系统变慢时,我们通常做的第一件事,就是执行 top 或者 uptime 命令,来了解系统的负载情况.比如像下面这样,我在命令行里输入了 uptime 命令,系统也随即给出了结果. [root@ ...

随机推荐

  1. .Net 线程安全集合

    .Net 提供了基于生产-消费模式的集合类,这些集合对多线程访问安全,定义在System.Collections.Concurrent名称空间中.这个名称空间中包括基础接口IProduceConsum ...

  2. RHCSA 第八天

    1.查询ip的几种方式: ip, ifconfig, nmcli,nmtui 2.nmcli命令使用: a.在ens160网卡上新建连接static_con,并配置静态ip b.在ens160网卡上新 ...

  3. web刷题记录 极客大挑战2019Knife upload buy a flag

    极客2019Knife webshell就是以asp.php.jsp或者cgi等网页文件形式存在的一种代码执行环境,主要用于网站管理.服务器管理.权限管理等操作.使用方法简单,只需上传一个代码文件,通 ...

  4. 热词cloud-EChart安装

    1.安装npm install echarts npm install echarts-wordcloud注意版本:echarts版本5只能和wordcloud版本2的一起使用 :echarts版本4 ...

  5. django_templates模板与html页

    新建应用 上一篇通过"django-admin startproject helloworld"是创建项目,一个项目下可以有多个应用(app).打开cmd,cd到manage.py ...

  6. tarjan全家桶

    tarjan 全家桶 关于tarjan 它太强了 CCCOrz dfs树&low dfs树:在图上做不重复经过同一点的dfs,经过的边与点形成一棵树.于是图上所有点都被这棵树包含,一部分边被包 ...

  7. 机器学习-逻辑回归与SVM的联系与区别

    (搬运工) 逻辑回归(LR)与SVM的联系与区别 LR 和 SVM 都可以处理分类问题,且一般都用于处理线性二分类问题(在改进的情况下可以处理多分类问题,如LR的Softmax回归用在深度学习的多分类 ...

  8. redis分析系列之set命令

    前言 最近研究下redis源码,现在从最基本的命令行操作来分析,redis是如何处理命令操作的 1. redis的set命令操作 我们在redis-cli执行下面的命令 set c c debug 发 ...

  9. Java方法内联

    一.概念 方法内联就是把调用方函数代码"复制"到调用方函数中,减少因函数调用开销的技术   函数调用过程 1.首先会有个执行栈,存储它们的局部变量.方法名.动态连接 2.当一个方法 ...

  10. C语言system函数

    我们今天来看看在windows操作系统下system () 函数详解(主要是在C语言中的应用) 注意:在windows下的system函数中命令可以不区别大小写! 函数名: system 功 能: 发 ...