背景

前段时间,由于有几个应用引入了 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相关推荐

  1. Load average in Linux的精确含义

    Man 上的解释: load average System load averages is the average number of processes that are either in a ...

  2. 老李分享:shell 监控cpu,memory,load average 1

    老李分享:shell 监控cpu,memory,load average poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课 ...

  3. load average

    2019独角兽企业重金招聘Python工程师标准>>> \linux\include\linux\sched.h中定义的有关频率,load average的相关常数与变量 #defi ...

  4. LINUX下CPU Load Average的一点研究

    背景: 公司的某个系统工作在基于Linux的Cent OS下,一个host下同时连接了许多client, 最近某台Host总是显示CPU Load Average过高,我们单纯的以为是CPU的占用过高 ...

  5. 理解Linux系统中的load average(图文版)转载

    理解Linux系统中的load average(图文版) 博客分类: Linux linux load nagios  一.什么是load average? linux系统中的Load对当前CPU工作 ...

  6. linux中负载值为多少正常_Linux load average负载量分析与解决思路

    一.load average top命令中load average显示的是最近1分钟.5分钟和15分钟的系统平均负载.系统平均负载表示 系统平均负载被定义为在特定时间间隔内运行队列中(在CPU上运行或 ...

  7. linux主机load average的概念计算过程注意事项

    最近开发的一个模块需要根据机房各节点的负载情况(如网卡IO.load average等指标)做任务调度,刚开始对Linux机器load average这项指标不是很清楚,经过调研,终于搞清楚了其计算方 ...

  8. 如何理解和分析linux系统的CPU平均负载情况(load average)

    最近研究linux时接触到了一个新的概念,叫做CPU的平均负载(load average).之前都只听说过CPU的使用情况,很少听说过负载情况.于是对这个概念进行了一下研究学习,总结如下,以便日后查阅 ...

  9. 理解Linux系统中的load average

    一.什么是load average? linux系统中的Load对当前CPU工作量的度量 (WikiPedia: the system load is a measure of the amount ...

最新文章

  1. C++读写局域网共享
  2. stm32机器学习_STM32机器学习开发实战
  3. boost::gil::ImageConcept用法的测试程序
  4. 非负矩阵之Perron-Frobenius定理
  5. 移动应用开发——实验四
  6. ef 执行mysql语句_在EF中执行SQL语句
  7. python编程100个小程序-100个Python练手小程序
  8. JDK18 Java 18 拥有 9 个新特性
  9. Asterisk怎样配置才能出视频
  10. LintCode Memcache
  11. 哪些思维让你受益匪浅
  12. 2022韦莱韬悦人力资源管理季刊
  13. 利用VMM建立基于事务的层次化验证平台
  14. 欧盟要求谷歌美国站点也要执行“被遗忘权”
  15. canvas.toDataURL() gives “Security Error” in IE 11
  16. vga转html电脑打不开,VGA转HDMI转换器解决电脑连接投影仪的问题
  17. csgo 机器人模式_csgo怎么单机跟电脑打只有每队5人,怎么增加BOT
  18. 产品经理进修第四天 产品增长怎么做
  19. VSCode调试leetcode的cpp以及c语言(windows)
  20. 解决ubuntu终端输入异常,回退变成空格后移

热门文章

  1. python3常用模块_Python3 常用模块
  2. yum 下载RPM包而不进行安装
  3. mysql常见监控项
  4. 使用java开发简单的mis系统所需的技术
  5. [leetcode]347. Top K Frequent Elements
  6. Fiddler进行模拟Post提交json数据,总为null解决方式
  7. css两栏式布局示例
  8. oracle中偏移,怎么对相同的坐标点偏移?
  9. cdh中使用hue使用教程_我可以在户外使用Philips Hue灯泡吗?
  10. 如何在Windows上设置BitLocker加密