【转载】系统负载

什么是负载?

负载是服务器运行是否正常的一个风向标,当服务器软件异常时,大部分都会排查线上服务器的负载状况。那么到底什么是负载呢?

在Linux内核调度中,负载的评估指标不是CPU使用率,而是进程处于runnable的平均时间。Linux内核调度包含调度实体负载、CPU负载和系统负载等3个级别的负载计算方式的。其中CPU负载是用来体现当前CPU的工作任务loading情况,和CPU繁忙程度的,其主要通过统计CPU rq上task处于runnable的平均时间。而我们在服务治理中经常提到的负载实际指的是系统负载。

系统负载

我们先通过uptime、top、cat /proc/loadavg等命令查看系统级的平均负载表现

% uptime
23:44  up 11 days,  2:07, 2 users, load averages: 2.54 2.99 3.32
 
$ top
Processes: 419 total, 2 running, 417 sleeping, 3043 threads      23:43:30
Load Avg: 2.78, 3.11, 3.38  CPU usage: 6.48% user, 5.0% sys, 88.50% idle
 
$ cat /proc/loadavg 
25.72 23.19 23.35 42/3411 43603
 
“load average:”后面的3个数字分别表示1分钟、5分钟、15分钟的load average。可以从几方面去解析load average:
If the averages are 0.0, then your system is idle.
If the 1 minute average is higher than the 5 or 15 minute averages, then load is increasing.
If the 1 minute average is lower than the 5 or 15 minute averages, then load is decreasing.
If they are higher than your CPU count, then you might have a performance problem (it depends).

关于负载的一种解释:一段时间内处于可运行状态和不可中断状态的进程平均数量。(可运行分为正在运行进程和正在等待CPU的进程,状态为R;不可中断则是它正在做某些工作不能被中断比如等待磁盘IO等,其状态为D),它是从另外一个角度体现CPU的使用状态。

对于可运行状态进程数量,很好理解,CPU使用率高,自然负载升高。但是为什么不可中断状态的进程数也会影响系统负载呢?

在1993的一封邮件中,Linux的设计者觉得这些看似短暂的uninterruptible sleep也要算在runnable中,他举了个例子,如果你把磁盘从快的换成慢的,然后你的系统负载一定是会下降的,但是你在用cpu load的统计方式就很不直观。所以加入了不可中断io的统计,这个指标其实已经在此时从cpu负载变成系统负载了。

实战中如何排查系统负载问题呢

第一步,如何判断负载高低?

使用uptime、top或者查看/proc/loadavg都可以看到CPU的load统计,这里有三个值,分别代表1分钟、5分钟和15分钟的CPU Load情况。大部分人认为这三个数值越小说明比较好,如果越高说明系统可能存在问题或负载过高了。

这几个指标中,偶尔的1分钟内CPU load高,而5-15分钟的load正常,一定程度上是正常的;如果最近15分钟内都很高,就需要关注了。

那怎么样才算高呢?该数值与总核数(即物理CPU个数*每物理CPU的核心数)有关,比如对于总核数为4的机器,CPU load=2就表示系统负载是50%,系统负载就是健康的;如果超过4,就表示已经超过了系统负载了。

第二步,哪些原因导致负载升高?

通过系统负载的定义也可以看出影响系统负载的几个原因:

第一是CPU资源不够,此时一般是可运行状态进程增多;

第二种不可中断状态进程增多,一般是因为大量读请求导致IO成为瓶颈,此时CPU利用率可能不高,但是进程在等待IO过程是不可中断状态,仍然会参与负载计算,从而导致负载升高。

第三步,如何解决负载过高?

通过top查看哪个进程使用率较高,直接杀死这个进程。

如下图,通过stress测试,其中一个进程CPU使用率攀升。直接kill掉这个进程,load就下来了。

在这里插入图片描述

————————————————

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/u010451334/article/details/131446728

  • 15
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值