读懂系统负载(Load Avg)的含义 | Devops

有过运维Linux服务器的选手,想必对于系统平均负载(load averages)参数不会陌生吧,我们可以通过top, htop, uptime这些命令找到它们(如下图),那么我们又改如何理解它们呢,今天这篇就来一起看看应该如何读懂这个load averages参数。

系统平均负载的取值分别来自1分,5分,15分这三个时间区间,对于单核CPU而言,当平均负载为0时,表示CPU完全空闲,当平均负载为1时,表示CPU为满负荷状态,但两个极端都不应出现在我们的服务器上,前者说明系统没有被充分利用到,后者说明系统濒临奔溃,都不是什么好事情。

关于负载的含义,网上最广泛的示例,是通过桥梁的通过率来解释的。讲的真心好,所以直接「借鉴」过来,需要看原文的直接从参考引用处自行穿越。注意这里的比喻是基于单核CPU的。

系统负荷为0,意味着大桥上一辆车也没有

系统负荷为0.5,意味着大桥一半的路段有车。

系统负荷为1.0,意味着大桥的所有路段都有车,但任然可以顺次通行

系统负荷为1.7,除了桥满之外,在桥的入口处还有70%的车辆在等待

就目前情况来说,单核的个人PC是不应该的,当然服务器就是另一回事儿了,比如可能你买了某云主机商的单核廉价套餐来搭梯子,但实际的真实环境中单核真的是很少,所以光知道单核的表现还不行,还得会换算到多核处理器上,其实这也简单,直接在单核的负载上乘以核数就可以了,换到刚才的大桥示例,多核就是多车道(下图),车道多了通过率自然就嘎嘎滴。

好了,知道了数值的含义,我们再来看看恰当的经验值该是多少,到底应该以三个值中的哪个位准,以及预告系统奔溃的经验值该设置成多少?

前面说到平均负载是1,5,15这三个时间区间的均值。因为偶尔系统负载会出现峰值,短时间1,5分钟的负载都不够客观存在抖动,所以最可靠的肯定是第三个,15分钟内的均值,如果系统平均负载的第三个值长时间居高不下,那么就应该考虑提升配置或者给系统进程做做减法了。

第二个问题,知道了基准值的位置,那么基准值该是多少呢?其实这个值完全是靠个人经验的,只能是种预判,就像阴天不一定下雨一样,好了不卖关子,实际中最好能让负载保持在满负载的75%左右,长时间高于这个值就应该考虑做出调整了,当然也恭喜你业务得到拓展了(2333~),另外在生产环境中,你可以通过Monit,Nagios等这样的监控软件来监控系统性能指标,从而做到「早发现,早治疗」。

如何获取CPU的核数

Mac

sysctl -n hw.ncpu

Linux

cat /proc/cpuinfo

-完-

你还可以看:

Monit让你的服务持续在线

关于Github的两个小技巧

教你如何在Commit时有话可说

使用Gulp-Rsync部署前端项目

Linux查看当前端口状况

几种服务端推送技术方案的比较

参考引用

 

 

http://www.wtoutiao.com/p/1faPwo8.html

优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/269630

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。