linux CPU 负载高问题分析方法

文章目录

  • linux CPU 负载高问题分析方法
    • CPU
      • 平均负载
        • 平均负载含义
        • 平均负载多少合理
        • 平均负载与CPU使用率
        • 如何分析平均负载过高问题

CPU

平均负载

平均负载含义

平均负载是指执行uptime后显示的Load Average(平均负载),单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数。

平均负载多少合理

当平均负载比cpu个数还大的时候,系统已经出现了过载。要综合三个不同时间间隔的平均值去比较。

平均负载与CPU使用率

平均负载和CPU使用率不能混为一谈,平均负载高了并不意味这CPU使用率就会变高。平均负载是单位时间内,处于可运行状态和不可中断状态的进程数。所以,它不仅包括了正在使用CPU的进程,还包括等待CPU和等待I/O的进程。

而CPU使用率,是单位时间内CPU繁忙情况的统计,跟平均负载并不一定完全对应,比如:

  • CPU 密集型进程,使用大量 CPU 会导致平均负载升高,此时这两者是一致的;
  • I/O 密集型进程,等待 I/O 也会导致平均负载升高,但 CPU 使用率不一定很高;
  • 大量等待 CPU 的进程调度也会导致平均负载升高,此时的 CPU 使用率也会比较高。

如何分析平均负载过高问题

  • CPU密集型进程
    通过mpstat查看CPU使用率的变化情况:
    -P ALL 表示监控所有 CPU,后面数字 5 表示间隔 5 秒后输出一组数据
# -P ALL 表示监控所有 CPU,后面数字 5 表示间隔 5 秒后输出一组数据
$ mpstat -P ALL 5
Linux 4.15.0 (ubuntu) 09/22/18 _x86_64_ (2 CPU)
13:30:06     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
13:30:11     all   50.05    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00   49.95
13:30:11       0    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
13:30:11       1  100.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00

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

再通过pidstat查询到哪个进程导致cpu使用率100%。

# 间隔 5 秒后输出一组数据
$ pidstat -u 5 1
13:37:07      UID   PID    %usr     %system  %guest   %wait    %CPU    CPU  Command
13:37:12      0     2962   100.00   0.00     0.00     0.00     100.00  1    stress
  • I/O 密集型进程
    同理,先通过mpstat查看usr和iowait的值,如果iowait比usr高,那说明是iowait的升高导致平均负载的升高。

  • 大量进程的场景
    通过pidstat查看进程情况,如果多个服务都在抢少量的cpu,并且wait值都比较高的话,说明每个进程等待cpu的时间都很高,最终导致cpu过载。

linux CPU 负载高问题分析方法相关推荐

  1. 后台服务器CPU使用率高 问题分析方法

    一.找出cpu使用率高的进程和线程: a.将 cpu 占用率高的线程找出来: ps H -eo user,pid,ppid,tid,time,%cpu,cmd--sort=%cpu b.对于多线程的服 ...

  2. 记录一次服务器CPU负载高,利用率正常的处理方法

    背景: 在一次查看服务器监控的时候偶然发现其中一台服务器的CPU负载很高,但是CPU利用率基本没有,通过top命令完全看不出来问题所在,经过一些思路的排查发现了原因并处理,现记录下来. 现象: top ...

  3. linux物理内存地址与iomem,一种Linux系统物理内存镜像文件分析方法_4

    模块信息,如图7所示,给出了本发明的实施例中 模块结构关系图,modules变量指向某一个已加载模块结构体module地址,所有已加载模 块其module形成一个双向链表,如图7所示,据此可以获取到所 ...

  4. (三) CPU 性能测试 (CPU负载高对应的不同情况)

    下文通过命令stress命令进行演示CPU负载高对应的不同情况,stress用法可参考链接:stress 一.测试设备硬件资源情况 系统版本:Ubuntu 18.04.5 LTS CPU型号:Inte ...

  5. Mysql CPU占用高的问题解决方法小结

    Mysql CPU占用高的问题解决方法小结 参考文章: (1)Mysql CPU占用高的问题解决方法小结 (2)https://www.cnblogs.com/shuaiandjun/p/566204 ...

  6. 资源管理器占用CPU过高的解决方法

    有时我们在打开资源管理器的时候,发现cpu占用特别的高,这个是怎么回事呢?cpu过高不仅会导致电脑的运行速度变慢,还会加速硬件的使用年限,这种情况一般是后台运行的程序过多,具体的详情下面一起来看看吧. ...

  7. cpu占用高 本地服务器,win10系统服务主机本地系统cpu占用高的解决方法

    很多小伙伴都遇到过win10系统服务主机本地系统cpu占用高的困惑吧,一些朋友看过网上零散的win10系统服务主机本地系统cpu占用高的处理方法,并没有完完全全明白win10系统服务主机本地系统cpu ...

  8. 执行计划变化导致CPU负载高的问题分析 (r8笔记第20天)

    前几天碰到一个CPU负载较高的问题.从系统层面来看,情况不是很严重,但是从应用的角度来说,已经感觉到很慢了.因为前端的调用频率还是比较高.所以会把这个问题放大. Elapsed Time (s) CP ...

  9. linux性能测试 瓶颈,性能测试——瓶颈分析方法

    1.内存分析方法 内存分析用于判断系统有无内存瓶颈,是否需要通过增加内存等手段提高系统性能表现. 内存分析需要使用的计数器:Memory类别和Physical Disk类别的计数器.内存分析的主要方法 ...

最新文章

  1. Android开发环境搭建与起步--太详细了,一步一步图文教你
  2. 测试无线节能信标与主控器之间的控制功能
  3. 手把手教你整合最优雅SSM框架
  4. pom env.java home_关于java:aven:POM.xml中缺少工件com.sun:tools:jar:1.6.0编译时异常...
  5. 刘国辉 :做银行背后的“卖水人”,是不是好生意?
  6. linux aria2 多线程,Mac/Linux 多线程下载解决方案(Aria2 YAAW是什么)
  7. Python爬虫入门【11】:半次元COS图爬取
  8. [poj3130][半平面交]How I Mathematician Wonder What You Are!
  9. canvas与CreateJS实现图片动画
  10. 查看变量 IFS 的值
  11. 阿里云视频直播,使用obs推流验证是否成功
  12. 第二章第二节.把梳子卖给和尚
  13. 超详细版企业离线部署CDH6.10集群与配置使用
  14. hijackthis.exe
  15. DAY TRADER
  16. [博摘]论人类最优秀软件
  17. yorc.json_天若OCR文字识别工具 v4.13 最全的OCR接口
  18. arduino控制一位数码管、控制二位数码管动态显示(用不到中断程序)
  19. 高频交易的四种经典算法
  20. 芯片系统分级-模电基础

热门文章

  1. Latex术语表加边框
  2. 移动flexe小颗粒
  3. 好用的三维绘图软件CREO的草绘
  4. 关于单片机使用继电器时为什么要在继电器电路上加接二极管
  5. HTML 5 版的 YouTube 支持变速视频播放
  6. 微位移:一种高效的硬件图像压缩算法
  7. matlab归一化函数,以及还原归一化。
  8. “写入缓存失败”的八个最常见的原因
  9. 广州市海珠区2021-2022学年七年级第一学期期末考试英语试题
  10. Navicat使用跳板机连接mysql