聊一聊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 提供了一个快速查看系统整体性能的手段,反映了整体的负载情况。
要分析系统的负载情况,是离不开这三个不同时间间隔的平均值。
聊一聊Load Average相关推荐
- Load average in Linux的精确含义
Man 上的解释: load average System load averages is the average number of processes that are either in a ...
- 老李分享:shell 监控cpu,memory,load average 1
老李分享:shell 监控cpu,memory,load average poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课 ...
- load average
2019独角兽企业重金招聘Python工程师标准>>> \linux\include\linux\sched.h中定义的有关频率,load average的相关常数与变量 #defi ...
- LINUX下CPU Load Average的一点研究
背景: 公司的某个系统工作在基于Linux的Cent OS下,一个host下同时连接了许多client, 最近某台Host总是显示CPU Load Average过高,我们单纯的以为是CPU的占用过高 ...
- 理解Linux系统中的load average(图文版)转载
理解Linux系统中的load average(图文版) 博客分类: Linux linux load nagios 一.什么是load average? linux系统中的Load对当前CPU工作 ...
- linux中负载值为多少正常_Linux load average负载量分析与解决思路
一.load average top命令中load average显示的是最近1分钟.5分钟和15分钟的系统平均负载.系统平均负载表示 系统平均负载被定义为在特定时间间隔内运行队列中(在CPU上运行或 ...
- linux主机load average的概念计算过程注意事项
最近开发的一个模块需要根据机房各节点的负载情况(如网卡IO.load average等指标)做任务调度,刚开始对Linux机器load average这项指标不是很清楚,经过调研,终于搞清楚了其计算方 ...
- 如何理解和分析linux系统的CPU平均负载情况(load average)
最近研究linux时接触到了一个新的概念,叫做CPU的平均负载(load average).之前都只听说过CPU的使用情况,很少听说过负载情况.于是对这个概念进行了一下研究学习,总结如下,以便日后查阅 ...
- 理解Linux系统中的load average
一.什么是load average? linux系统中的Load对当前CPU工作量的度量 (WikiPedia: the system load is a measure of the amount ...
最新文章
- C++读写局域网共享
- stm32机器学习_STM32机器学习开发实战
- boost::gil::ImageConcept用法的测试程序
- 非负矩阵之Perron-Frobenius定理
- 移动应用开发——实验四
- ef 执行mysql语句_在EF中执行SQL语句
- python编程100个小程序-100个Python练手小程序
- JDK18 Java 18 拥有 9 个新特性
- Asterisk怎样配置才能出视频
- LintCode Memcache
- 哪些思维让你受益匪浅
- 2022韦莱韬悦人力资源管理季刊
- 利用VMM建立基于事务的层次化验证平台
- 欧盟要求谷歌美国站点也要执行“被遗忘权”
- canvas.toDataURL() gives “Security Error” in IE 11
- vga转html电脑打不开,VGA转HDMI转换器解决电脑连接投影仪的问题
- csgo 机器人模式_csgo怎么单机跟电脑打只有每队5人,怎么增加BOT
- 产品经理进修第四天 产品增长怎么做
- VSCode调试leetcode的cpp以及c语言(windows)
- 解决ubuntu终端输入异常,回退变成空格后移