理解load averages
今天在客户的生产环境中遇到了网络丢包的问题,但是查看我方部署smokeping监控发现对同一条线路监控,我方监控显示正常,判断丢包是由客户服务器负载过高导致,原因及排查思路如下:
使用uptime命令查看云主机负载
uptime
14:21:39 up 39 days, 22:18, 1 user, load average: 22.03, 20.01, 23.05
看到这个负载感觉目前整个操作系统已经很危险了,负载已经达到了20左右,客户云主机配置为8C8G。
理解Linux处理器负载平均值
以上我们已经使用了uptime命令对当前的云主机性能进行了查看,但是需要明确的是load average值到底多少才算正常呢?我们如何判断丢包的原因是不是因为服务器负载过高导致的呢?
load average三个数值分别代表不同时间段的系统负载情况(一分钟、五分钟、十五分钟)那么我们应该如何使用这三个值进行准确的判断呢?实际上我们更应该注重五分钟、十五分钟的负载值,如果当前一分钟的负载值升高,五分钟以及十五分钟负载值正常,那么我们不需要过于担心,很可能是暂时现象。如果十五分钟负载值过大那就需要引起我们的注意了,需要我们对云主机进行升级配置或对当前集群进行扩容。
那么,问题又来了,现在我们知道查看具体时间的负载值对严重程度进行分析了,那么我们进一步就需要判断负载值为多少才需要我们进行关注呢!
实际上负载值是与CPU个数和核数有关的,负载值不应该超过处理器核心数(本次实例负载值不应该超过8)
我们可以如下理解:单核CPU负载正常值不超过1,n核CPU处理器负载值不超过n。现在我们将CPU比作是一座跨海大桥,CPU的个数与核数比作是这座大桥的车道数,当CPU个数与核数为1服务器负载为1时,可以理解为一条单行道的大桥上已经拥堵满了车辆无法在继续前行,后续车辆只能等待前方车辆通过后继续前行,如果CPU个数或核数为8,相当于此条大小的可行车道数为8,理论情况下是当负载达到8时将所有车道堵满无法通行,相信这样就很好理解了。
曾几何时,我对多核和多个处理器有所误解,就技术而言我接触更多的是多核处理器,下面简单的描述下他们之间的区别。
- 多核处理器:将多个核心进行集成,例如:一个双核处理器可以同时执行多个不同的进程,大大的提升了系统的处理速度,多个核心在一个芯片上,它们之间的通讯也更快,功耗更低,弊端是所有的压力集中与一个物理处理器,压力过大导致处理器达到瓶颈,有宕机风险。
- 多个处理器:服务器上安装多个处理器,例如:多个处理器分别处理不同的进程,同样提高了系统的处理速度,但是多个CPU的功耗、体积更大,数据之间通讯更慢,这种分布式系统之间面临着很多问题,如:一个处理器正在处理一个进程,突然出现故障,这个进程后续谁来处理?以及如何协调这些处理器进行工作,这些都是分布式计算将要面临的挑战。
目前而言,多核处理器仍是市场主流。以上的解释可以用下图更形象的进行展示。

预警值
如果将CPU比喻为人的话,负载值比喻为工作,我们当然不会让手中的工作达到100%也就是1,所以当负载值超过50%时就需要我们警示了,尽快排查原因,如果真的是无法进行优化处理,那么就尽快进行扩容。CPU真幸福压力大了还可以罢工,人就不是了--活着干,死了算。
理解load averages的更多相关文章
- 如何理解 Linux 中的 load averages
原文:https://mp.weixin.qq.com/s?src=11×tamp=1533697106&ver=1047&signature=poqrJFfcNAB ...
- 理解Load Average做好压力测试
http://www.blogjava.net/cenwenchu/archive/2008/06/30/211712.html CPU时间片 为了提高程序执行效率,大家在很多应用中都采用了多线程模式 ...
- 理解Load Average做好压力测试(转)
转载自:http://www.blogjava.net/cenwenchu/archive/2008/06/30/211712.html SIP的第四期结束了,因为控制策略的丰富,早先的的压力测试结果 ...
- Laravel渴求式加载(比较容易理解理解load与with关系)
渴求式加载 当以属性方式访问 Eloquent关联关系的时候,关联关系数据是「懒惰式加载」的,这意味着关联关系数据直到第一次访问的时候才被加载.不过,Eloquent 还可以在查询父级模型的同时「渴求 ...
- 理解Linux系统负荷load average
理解Linux系统负荷 一.查看系统负荷 如果你的电脑很慢,你或许想查看一下,它的工作量是否太大了. 在Linux系统中,我们一般使用uptime命令查看(w命令和top命令也行).(另外,它们在 ...
- 理解linux cpu load - 什么时候应该担心了
译文原文: http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages 你可能已经很熟悉linux的平均load. ...
- 理解cpu load
三种命令 1. w 2. uptime 3. top CPU负载和CPU利用率的区别 1)CPU利用率:显示的是程序在运行期间实时占用的CPU百分比 2)CPU负载:显示的是一段时间内正在使用和等待使 ...
- Linux系统Load average负载详细解释
我们知道判断一个系统的负载可以使用top,uptime等命令去查看,它分别记录了一分钟.五分钟.以及十五分钟的系统平均负载 例如我的某台服务器: $ uptime 09:50:21 up 200 da ...
- 读懂系统负载(Load Avg)的含义 | Devops
有过运维Linux服务器的选手,想必对于系统平均负载(load averages)参数不会陌生吧,我们可以通过top, htop, uptime这些命令找到它们(如下图),那么我们又改如何理解它们呢, ...
随机推荐
- The value for the useBean class attribute is invalid.
报错如下: The value for the useBean class attribute com.JavaBeanTest is invalid. 解决方法: 在JavaBean代码中加入无参数 ...
- Inside Triangle
Inside Triangle https://hihocoder.com/contest/hiho225/problem/1 时间限制:10000ms 单点时限:1000ms 内存限制:256MB ...
- VMware安装Windows注意
安装Windows通用步骤,分区,重建分区表,重写MBR引导.安装即可. VMware安装Windows 如果进不了CM/ROM,在.vmx文件里: 加入一行:bios.forceSetupOnce ...
- Python threading 单线程 timer重复调用函数
项目中需要使用定时器,每次都使用构造器函数调用: timer = threading.Timer(timerFlag, upload_position) timer.start() 打印线程后发现,每 ...
- 粘性Service
粘性Service就是一种服务 把他删去他又会马上创建 原理是在这个服务中去开启线程不断检测此服务是否存在如果不存在,咋就会重新创建 import android.app.Activity; impo ...
- Electronic Trading[z]
This article is to discuss the operation model between Fund Managers(Client) and Broker Firms. They ...
- src/lxml/includes/etree_defs.h:14:31: 致命错误:libxml/xmlversion.h:没有那个文件或目录
fedora21平台下解决办法:yum install libxml-devel ubuntu下可以使用 apt-get intalll xxxx 如果仍然出现,可以尝试安装这两个包libxslt-d ...
- BZOJ 1211[HNOI2004]树的计数 - prufer数列
描述 一个有n个结点的树,设它的结点分别为v1, v2, …, vn,已知第i个结点vi的度数为di,问满足这样的条件的不同的树有多少棵.给定n,d1, d2, …, dn,编程需要输出满足d(vi) ...
- [SoapUI] 各种日期计算
import java.util.*; import java.text.SimpleDateFormat; // current date String dateNew = today() // t ...
- 通过ANT实现jmeter批量执行脚本、生成报告、发送邮件全套build.xml文件
在开始通过ANT运行build.xml之前,有一步必须要做,那就是将JMeter所在目录下extras子目录里的ant-JMeter-1.1.1.jar复制到Ant所在目录lib子目录之下,这样Ant ...