肥仔教程网

SEO 优化与 Web 开发技术学习分享平台

如何理解“平均负载”

含义

指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数。平均活跃进程数分为运行状态进程不可中断进程

排查

平均负载高需要通过uptime、mpstat以及pidstat命令进行排查。

1. 首先通过uptime命令观察系统目前系统平均负载情况,三个数字分别代表1分钟、5分钟、15分钟的平均负载,如果1分钟的值大于5分钟的,说明负载越来越高

# -d 参数表示高亮显示变化的区域$ 
watch -d uptime
..., load average: 2.00, 1.00, 0.39

2. 通过mpstat观察每一颗cpu的使用情况

# -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

3. 最后通过pidstat观察指定进程的资源利用率,查找具体影响系统的进程是哪一个

# 间隔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

经验

  • 如果 1 分钟、5 分钟、15 分钟的三个值基本相同,或者相差不大,那就说明系统负载很平稳。
  • 但如果 1 分钟的值远小于 15 分钟的值,就说明系统最近 1 分钟的负载在减少,而过去 15 分钟内却有很大的负载。
  • 反过来,如果 1 分钟的值远大于 15 分钟的值,就说明最近 1 分钟的负载在增加,这种增加有可能只是临时性的,也有可能还会持续增加下去,所以就需要持续观察。一旦 1 分钟的平均负载接近或超过了 CPU 的个数,就意味着系统正在发生过载的问题,这时就得分析调查是哪里导致的问题,并要想办法优化了。

小结

  • 平均负载高有可能是 CPU 密集型进程导致的;
  • 平均负载高并不一定代表 CPU 使用率高,还有可能是 I/O 更繁忙了;
  • 当发现负载高的时候,你可以使用 mpstat、pidstat 等工具,辅助分析负载的来源。

分享

分享下LINUX系统性能问题定位工具图谱

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言