linux性能-01 对于系统平均负载的理解

1-平均负载

  • 当发现机器cpu告警或者网络IO告警的时候,一般情况下会用uptime(也可以htop)
16:05:16 up 172 days, 15:29,  1 user,  load average: 0.11, 0.27, 0.37

1 user : 当前有多少用户d
0.11, 0.27, 0.37 : 分别是最近1,5,15分钟的平均负载(load average)

What is load average ?

- 粗俗理解:最近有多少任务在单位时间内有多少任务在执行,如果这个数量超过cpu核心数,则表示机器负载过高(因为所谓并行,只不过是cpu切换的快罢了)
- 书上的说法: 平均负载是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数
    - 可运行状态: 正在使用或者正在等待cpu的进程
    - 不可中断状态: 处于内核态关键流程中的进程,并且这些流程是不可打断的,最常见的是等待硬件设备的I/o响应

理解平均负载和cpu使用率之间的区别

- 平均负载的影响因素有 cpu + 硬盘或者其他等待I/O 
- cpu使用率高,平均负载肯定会高,但是cpu使用率低,平均负载不一定低

平均负载到了多少要开始警惕?

- 一般来说达到百分之70就要开始留心了 

如果遇到平均负载过高的情况,我们要怎么处理?

  • 1.首先我们可以先用 mpstat 查看cpu使用率的变化
# -P ALL 表示监控所有CPU,后面数字5表示间隔5秒后输出一组数据
# 第一种是cpu密集导致
$ 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

# 第二种是io密集导致
# 显示所有CPU的指标,并在间隔5秒输出一组数据
$ mpstat -P ALL 5 1
Linux 4.15.0 (ubuntu)     09/22/18     _x86_64_    (2 CPU)
13:41:28     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
13:41:33     all    0.21    0.00   12.07   32.67    0.00    0.21    0.00    0.00    0.00   54.84
13:41:33       0    0.43    0.00   23.87   67.53    0.00    0.43    0.00    0.00    0.00    7.74
13:41:33       1    0.00    0.00    0.81    0.20    0.00    0.00    0.00    0.00    0.00   98.99

  • 2, 发现cpu使用过高后,转用pidstat找到是哪个进程占用了cpu
# 间隔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
  • 3, 发现是iowait过高后,转用pidstat找到是哪个进程导致

# 间隔5秒后输出一组数据,-u表示CPU指标
$ pidstat -u 5 1
Linux 4.15.0 (ubuntu)     09/22/18     _x86_64_    (2 CPU)
13:42:08      UID       PID    %usr %system  %guest   %wait    %CPU   CPU  Command kworker/0:1H
13:42:13        0      2997    2.00   35.53    0.00    3.99   37.52     1  stress
13:42:13        0      3057    0.00    0.40    0.00    0.00    0.40     0  pidstat
  • 4, 接下来就是定位大家自己写的程序出现的问题了~~

  • ps: 参考书籍:《极客时间-Linux性能优化实战-倪朋飞》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值