聊一聊Load Average

背景

前段时间,由于有几个应用引入了 prometheus-net.DotNetRuntime 这个组件,导致系统 CPU 间歇性飙升。这是这个组件一个已知的雷。。

同样也引发了系统的 Load Average (平均负载) 十分不正常。

这是一台 4C8G 的服务器,Load Average 却是达到了 15。这也是有点离谱!修复之后的是稳定在 4 以下的。

关于平均负载,其实里面的学问很多,只要候选人简历上提到过 Linux 相关的,老黄是一定会问 Load Average 相关的内容的。

所有也花点时间梳理一下吧。

查看平均负载的N种方式

w

 12:02:29 up 25 days, 19:53,  1 user,  load average: 1.28, 0.68, 0.49
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    10.10.2.219    12:02    1.00s  0.01s  0.00s w

top

Tasks: 142 total,   1 running, 141 sleeping,   0 stopped,   0 zombie
%Cpu(s):  4.7 us,  2.9 sy,  0.0 ni, 91.3 id,  0.0 wa,  0.3 hi,  0.8 si,  0.0 st
MiB Mem :  15604.6 total,    170.4 free,   1771.2 used,  13663.0 buff/cache
MiB Swap:      0.0 total,      0.0 free,      0.0 used.  13522.4 avail Mem PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND             287467 root      20   0   22.1g 241512  20400 S   7.3   1.5   1029:52 dotnet287675 root      20   0   22.1g 233568  20616 S   7.3   1.5   1043:36 dotnet   

uptime

 12:04:08 up 25 days, 19:55,  1 user,  load average: 0.58, 0.61, 0.49

上面的输出结果,都可以看到 load average 的字样,后面还带了三个数据。

load average: 0.58, 0.61, 0.49

三个数字怎么理解

既然提供了三个数字,那么这三个数字分别代表什么呢?

从左到右,依次是过去 1分钟、 5分钟、 15分钟,系统的平均负载。

通过这三个数字,就可以比较简单的判断系统的负载趋势,上升或下降。

举几个例子来看看。

例子一

1.30 0.90 0.55

这三个数字在告诉我们系统的负载在慢慢上升,运行效率可能会减慢。

因为三个数字依次降低,说明在过去的 1 分钟系统的负载比过去 15 分钟系统的负载大。

例子二

0.45 0.40 0.43

这三个数字在告诉我们系统的负载比较平稳,没有太大的波动。

因为这三个数字相差不大,比较接近。

例子三

0.45 0.70 1.43

这三个数字在告诉我们系统的负载在慢慢下降,运行效率可能会有所提高。

因为三个数字依次上升,说明在过去的 1 分钟系统的负载比过去 15 分钟系统的负载小。

上面的三个例子分析也只是能看出趋势,但是并不确定更加具体一点的信息。

下面看看单个数字的含义。

负载含义

1.43 来说,它是什么意思呢?

如果是单核的机器,比如 1C1G,1C2G,说明系统已经在超负荷运作了,这一个 CPU 已经被完全占用了。

如果是多核的机器,比如 2C4G,4C8G,说明还有空闲的 CPU。

对于 2C 的来说,虽然没有满载,但也超过 70% 了,该留意一下了,因为很可能马上会出现问题。

对于 4C的来说,占用还没有 50%,基本可以不用太担心。

据说有一个经验值,CPU 数量的 0.7

当 Load Average 超过这个经验值的时候,就应该分析排查负载高的问题了。一旦负载过高,就可能导致进程响应变慢,进而影响服务的正常功能。

总结

Load Average 提供了一个快速查看系统整体性能的手段,反映了整体的负载情况。

要分析系统的负载情况,是离不开这三个不同时间间隔的平均值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/304583.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

优雅的读懂支持向量机 SVM 算法

转自:JerryLeadhttp://www.cnblogs.com/jerrylead/archive/2011/03/13/1982639.html简介支持向量机基本上是最好的有监督学习算法了。最开始接触SVM是去年暑假的时候,老师要求交《统计学习理论》的报告,那时去网上下了一份入门教程&#xff0…

Newbe.Claptrap 0.9.4 发布,全新构建

Newbe.Claptrap 0.9.4 发布,全新构建,全新内容,全新体验。简介 此次的版本更新虽然只是一个副版本更新。但实际上我们带来了非常多全新的内容。全方位将本框架带入到一个新的次代。我们希望我们的努力可以为在业务中需要 Actor 模式的开发者带…

【知识贴】战争中的数学应用

一、方程在海湾战争中的应用

Android Donut SDK 1.6r1 今日发布

Google今天公布了新版Android SDK,也就是Donut的最新1.6版,它可以帮助智能手机应用程序开发商迅速将自己的应用转换到Android系统上. SDK的发布有助于Google为自己寻找到更多的合作伙伴,为自己的Android Market添加人气,目前Donut已经可以下载. 下载:Android 1.6 SDK

开始CSRebot

写代码很久了了,时不时想把这些年学到的,用到的,或自己感悟到的,汇总一下,形成一个东西,或资料,或工具。但每当开始时就一片空白,总是觉得这些大家都会,这些只是自己片面…

toast弹窗_Android 开发(一):Toast弹窗与获取控件的值

前言:本人也是刚接触Android开发,自己也在摸索中,在实现功能的过程中走了不少弯路,其中很重要的原因之一就是查询不到想要的内容,所以想把自己的经验分享出来。首先是Toast的应用,直接上关键代码。Toast to…

魔性十足的数学动态图,这种东西都拿出来分享?

小编最近发现了一组超美的与数学有关的动态图,而且看久了简直就有魔性,实在是按耐不住激动的心情,秉持着好图齐分享的原则,在这里和大家一起分享一波~>>>>来源:蒋迅的博客

Command模式

作用: 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作. UML结构图: 解析: Comnand模式的思想是把命令封装在一个类中,就是这里的Command基类,同时把接收对象也封装在一个类中就是这里的Receiver 类中,由调用…

Dapr微服务应用开发系列4:状态管理构件块

Dapr微服务应用开发系列0:概述Dapr微服务应用开发系列1:环境配置Dapr微服务应用开发系列2:Hello World与SDK初接触Dapr微服务应用开发系列3:服务调用构件块题记:这篇介绍状态管理构件块,这个概念相对于微服…

开线程插数据_python笔记7-多线程之线程同步(锁lock)

前言丨关于吃火锅的场景,小伙伴并不陌生,前面几章笔记里面我都有提到,今天我们吃火锅的场景:吃火锅的时候a同学往锅里下鱼丸,b同学同时去吃掉鱼丸,有可能会导致吃到生的鱼丸。为了避免这种情况,…

一文读懂欧拉函数

欧拉函数φ(N)表示小于或等于N的正整数中与N互质的数的个数。又称φ函数、欧拉商数。下面介绍欧拉函数的几个性质:我们根据这几个性质就可以求出欧拉函数。基本思路是首先置φ(N)N,然后再枚举素数p,将p的整数倍的欧拉函数φ(kp)进行如下操作。…

windows 7在工作组模式下管理 Hyper-V

之前在工作组模式下win7来管理server core 下的hyper-v一直不成功,server core下的相应的防火墙端口也已开放但hyper管理器就是无法和hyper-v主机通讯在2008R2下没有问题,现把解决的过程记录下来,以备后查。1、下载Windows 7 远程服务器管理工…

打工就是 “演戏”,你可以认真,但别太当真

这是头哥侃码的第235篇原创时间飞逝,2021年的春节假期已经结束了。在我的记忆中,以前每逢春节的时候,身边的亲戚和朋友们都会非常忙碌,什么聚个餐,串个门呀,什么拜个年,打个牌啦……但从去年开始…

2018年的第一个工作日,推荐几个优质公众号

2017刚过去不久,我们迎来了2018。工作、生活节奏超快的今天,想要不断提升自我,碎片化阅读学习是你最佳的选择,如果你有一颗学习的心,那这些学习型的公众号,绝对会让你受益匪浅。小编为你精选了技术领域几个…

redis session java获取attribute_redis里的数据结构

Redis作为当前使用非常广泛的内存数据库,在代码层面做了很多极致的优化,已获取更好的性能。其中重要的一部分,就是对于底层数据结构的使用。Redis会根据数据量、数据大小等来优化对于不同结构的使用,从而获得更佳的运行效率和内存…

.NET 云原生架构师训练营(模块二 基础巩固 安全)--学习笔记

2.8 安全认证 VS 授权ASP .NET Core 认证授权中间件认证JWT 认证授权认证 VS 授权认证是一个识别用户是谁的过程授权是一个决定用户可以干什么的过程401 Unauthorized 未授权403 Forbidden 禁止访问ASP .NET Core 认证授权中间件在接收到请求之后,认证(A…

java超长字符序列化_String 字符串最长可以有多长?

Java技术栈www.javastack.cn打开网站看更多文章String 类可以说是在 Java 中使用最频繁的类了,就算是刚刚接触 Java 的初学者也不会陌生,因为对于 Java 程序来说,main 方法就是使用一个 String 类型数组来作为参数的(String[] args)。对于这样…

一文读懂 AVL 树

背景AVL 树是一棵平衡的二叉查找树,于 1962 年,G. M. Adelson-Velsky 和 E. M. Landis 在他们的论文《An algorithm for the organization of information》中发表。所谓的平衡之意,就是树中任意一个结点下左右两个子树的高度差不超过 1。&am…

欧几里得范数_从范数到正则化

范数是一个在数学领域中常用的工具,同时也是学习机器学习原理中经常碰到的概念。本文将从范数的定义出发,逐步带你理解其在机器学习中的应用。首先需要明确的是,范数是一个函数,在机器学习中我们通常用它来衡量向量的大小。 范数定…

IdentityServer4之持久化很顺手的事

前言原计划打算在春节期间多分享几篇技术文章的,但到最后一篇也没出,偷懒了吗?算是吧,过程是这样的:每次拿出电脑,在孩姥姥家的院子总有阳光沐浴,看不清屏幕,回屋又有点冷(在强行找理…