理解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这些命令找到它们(如下图),那么我们又改如何理解它们呢, ...
随机推荐
- 关于oracle数据库
Oracle数据库是做什么的? oracle数据库和其他数据库一样,都是保存数据的,同时可以去查询,修改,删除等oracle和其他数据不一样的地方在于,它又复杂的机制可以保证在数据库服务器突然坏了的情 ...
- RigidBody组件的Is Kinematic
RigidBody组件的Is Kinematic属性打上勾(设为true,使其不受物理引擎驱动,Wall是为了防止其移动,Person是为了防止其受到力不断旋转—看的心塞=v=) .is kinema ...
- form表单的默认提交行为
一 如果<form></form>表单中只有一个<input type="text"/>,则使文本框获取焦点,并单击回车,form会自动提交. ...
- GridView控件中的一些常见问题
1. 无法获取模板列中的值,使用FindControl()方法无效: 给模板列中添加隐藏域,并给隐藏域绑定要获取的值,代码如下: <asp:HiddenField ID="hfIsFr ...
- Excel日期格式调整
3-Aug-2008 自定义格式: [$-809]d-mmm-yyyy;@ Aug-2008 自定义格式: [$-809]mmm-yyyy;@
- centos7 二进制安装包安装 mysql5.6
centos7 二进制安装包安装 mysql5.6 一.下载mysql5.6二进制安装包 http://mirrors.sohu.com/mysql/MySQL-5.6/ 如:mysql-5.6.34 ...
- 5.Javascript 原型链之原型对象、实例和构造函数三者之间的关系
前言:用了这么久js,对于它的原型链一直有种模糊的不确切感,很不爽,隧解析之. 本文主要解决的问题有以下三个: (1)constructor 和 prototype 以及实例之间啥关系? (2)pro ...
- 『SpringMVC』<context:include-filter>&<context:exclude-filter>爬坑
原文地址:https://segmentfault.com/a/1190000012972619 大家好,我是猪弟,猪在我心中从来不是蠢的代名词,而是懒的代名词,本次准备记录一个在开发测试过程中遇到的 ...
- beego启动找不到conf的原因
beego配置文件路径如下: app.conf内容 httpaddr = "192.168.199.178" httpport = appname = SecProxy runmo ...
- AMD、CMD、UMD 模块的写法
简介 最近几年,我们可以选择的Javascript组件的生态系统一直在稳步增长.虽然陡增的选择范围是极好的,但当组件混合匹配使用时就会出现很尴尬的局面.开发新手们会很快发现不是所有组件都能彼此“和平相 ...