站长网 Linux 从阿里大促中,我顺明白的CPU与Load异常排查思路

从阿里大促中,我顺明白的CPU与Load异常排查思路

cpu使用率 = 100 * (totalCpuTime – idle) / totalCpuTime。 其他时间例如us、sy、ni都是类似的计算方式,总结起来说,cpu这个值反应的是某个采样时间内的cpu使用情况。因此有时候cpu很高,但是打印线程堆栈出来发现高cpu的线程在查询数据库等待中,不要觉

 cpu使用率 = 100 * (totalCpuTime – idle) / totalCpuTime。

其他时间例如us、sy、ni都是类似的计算方式,总结起来说,cpu这个值反应的是某个采样时间内的cpu使用情况。因此有时候cpu很高,但是打印线程堆栈出来发现高cpu的线程在查询数据库等待中,不要觉得奇怪,因为cpu统计的是采样时间内的数据。

假设top观察某段时间用户空间cpu一直很高,那么意味着这段时间用户的程序一直在占据着cpu做事情。
对load的理解

关于load的含义,其实有些文章把它跟行车过桥联系在一起是比较恰当和好理解的:

一个单核的处理器可以形象得比喻成一条单车道,车辆依次行驶在这条单车道上,前车驶过之后后车才可以行驶。

如果前面没有车辆,那么你顺利通过;如果车辆众多,那么你需要等待前车通过之后才可以通过。

因此,需要些特定的代号表示目前的车流情况,例如:

 等于0.00,表示目前桥面上没有任何的车流。实际上这种情况0.00和1.00之间是相同的,总而言之很通畅,过往的车辆可以丝毫不用等待的通过;

 等于1.00,表示刚好是在这座桥的承受范围内。这种情况不算糟糕,只是车流会有些堵,不过这种情况可能会造成交通越来越慢;

 大于1.00,那么说明这座桥已经超出负荷,交通严重的拥堵。那么情况有多糟糕? 例如2.00的情况说明车流已经超出了桥所能承受的一倍,那么将有多余过桥一倍的车辆正在焦急的等待。

但是比喻终归是比喻,从比喻中我们了解了,load表示的是系统的一个能力,但是我们却不知道什么样的任务会被归到load的计算中。关于具体怎么样的任务会被归到load的计算中,可以使用man uptime命令看一下Linux对于load的解释:

本文来自网络,不代表站长网立场,转载请注明出处:https://www.tzzz.com.cn/html/server/linux/2021/0529/7496.html

作者: dawei

【声明】:站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。
联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部