(译)理解Linux系统的CPU负载均值

译自Understanding Linux CPU Load - when should you be worried?

你可能已经很早就熟悉Linux负载均值这个概念了,通过uptime或者top命令就可以得到三个数字,具体如下所示:

load average: 0.09, 0.05, 0.01

绝大多数人对负载均值只是有个粗浅的认识:即这三个数字分别代表系统最后1分钟、最后10分钟以及最后15分钟的平均负载值,并且这些数字越小越好,如果比较大则表示系统设备有可能负荷超载等问题。

但是你有没有想过,这些数字有没有边界?代表“好”或者“坏”的边界值又是多少?你什么时候应该关注这些数值?你应该什么时候去尽快处理使其降下来?

在讨论这些问题之前,先了解一些负载均值相关的背景知识。我们用一台配置了单核处理器的设备,举个简单例子解释说明下。

道路千万条,安全第一条。行车不规范,亲人两行泪。

单核CPU就像一条车道的交通情况。假设你是一座大桥的操作员,有时桥上太忙了,有很多车等着过桥。你想让人们知道桥上的交通状况。那么一个合适的度量标准,就是在特定时间有多少辆车在等待。如果没有车在等,新来的司机知道他们可以马上开过去。如果桥上堵车,那么司机就知道他们会遇到延误。

因此,这些数值用于如下用途:

  • 0.00表示桥上一辆车都没有。也就是说,如果数值介于0.00~1.00之间,则表示没有堵车,所有的车辆都可以流畅通过。

    负载为0.00
  • 0.50表示桥上的车辆只有一半。可以看到车辆间距较大,不会拥挤。

    负载为0.50
  • 1.00表示桥上的车辆达到最大值。一切刚刚好,但如果桥上再来一辆车,那么就出现堵车的情况了。

    负载为1.00
  • 大于1.00表示堵车了。负载数值和堵车严重程度有什么关系呢?举例说明,2.00表示等待过桥的车辆和桥上满负载的车辆一样多,3.00表示等待的车辆是桥上满负载的车辆的2倍,以此类推。

    负载为1.70

这基本上就是CPU负载的解释。“汽车”就是使用CPU时间片(即“过桥”)或排队使用CPU(等待“过桥”)的进程,Unix将其称为运行队列长度,即当前运行的进程数加上等待(排队)运行的进程数之和。

就像作为一个大桥的管理者,你肯定不愿意车辆/进程一直处于等待状态,所以应该让你的CPU负载低于1.00。如果偶尔超过1.00不用担心,但如果一直大于1.00,那么就需要考虑哪里出了问题了。

所以说最理想的负载是1.00吗?

其实并不是这样的。当负载达到1.00时表示已经触及天花板了,所以一般来说会有一条边界线,即0.70。

  • 经验法则之“需要关注”——0.70:如果你的CPU负载均值一直处于>0.70的状态,那么在事情变得更糟之前,需要调查一下原因所在。

  • 经验法则之“立刻修复”——1.00:如果你的CPU负载均值一直处于>1.00的状态,那么赶紧查原因修复它吧!

  • 经验法则之“紧急状况”——5.00:如果你的CPU负载均值超过了5.00,你恐怕是遇到大麻烦了!你的系统设备可能卡顿或者特别慢,随时会出现意外情况。

多处理器下,负载为3.00,但运行结果一切正常!

是4个处理器的系统吗?如果是,那就没事儿。

在多处理器系统上,负载与可用处理器内核的数量有关。“100%利用率”在单核系统上负载为1.00,在双核系统上为2.00,在四核系统上为4.00等等。

回到刚才大桥的例子上,1.00表示一条车道上的车辆。在单行道上的大桥上,1.00表示刚好满载;在两条车道的大桥上,1.00表示只有50%的负载——即一条车道满载,而另一条车道是空的。

同样地在CPU上:负载为1.00表示在单核系统上是100%利用率,负载为2.00表示在双核系统上是100%利用率。

多核处理器VS多处理器

现在,我们讨论下多核以及多处理器的话题。从性能的角度来看,一台只有一个双核处理器的机器基本上等同于一台只有两个单核处理器的机器。这里有许多关于缓存数量、处理器之间的进程切换频率等的细微之处。尽管有这些细微之处,但是为了评估CPU负载值,无论这些内核分布在多少物理处理器上,内核的总数量都很重要。

这就引出了两条新的经验法则:

  • 内核总数=最大负载:在一个多核系统里,负载不应该超过可用的内核数之和。

  • 内核就是内核:内核如何分布在CPU上并不重要,2个四核== 4个双核== 8个单核,这些都是8个内核。

回归正传

输入uptime命令,得到如下的负载均值:

~ $ uptime
23:05 up 14 days, 6:08, 7 users, load averages: 0.65 0.42 0.36

这是一个双核处理器,所以还有很大的余量空间,不需要为它担心,除非负载长期处于1.7或更大。

那么这三个数字怎么处理呢?0.65是最后1分钟的平均值,0.42是最后5分钟的平均值,0.36是最后15分钟的平均值。这就引出了一个问题:

这三个数值,我应该关注哪个?1分钟,5分钟,还是15分钟?

关于这些数值的含义我们已经讨论过(1.00表示需要马上修复等等),你最应该关注的是5分钟或15分钟的平均值。坦率地说,如果你的机器在一分钟内的平均峰值超过1.0,仍然是可以正常工作的。当15分钟的平均值超过1.0时,你需要迅速去调整直至正常范围内(当然具体数值要看你的系统内核数量)。

内核的数量对于解释平均负载非常重要,那么我如何得知系统有多少内核?

通过cat /proc/cpuinfo命令获取每个处理器的详细信息,grep 'model name' /proc/cpuinfo | wc -l命令则获取所有的内核数量。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,539评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,911评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,337评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,723评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,795评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,762评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,742评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,508评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,954评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,247评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,404评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,104评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,736评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,352评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,557评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,371评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,292评论 2 352