最近经常收到告警,CPU load大于阈值告警。查看系统的CPU是12核,告警阈值设置的是8。对于CPU load一直有个模糊的概念,具体是什么意思还真搞不明白,趁这个机会好好搞搞究竟。

1.查看CPU load

查看CPU load的方法很多,我经常用个最简单的命令:uptime

[linux@b28-34-98 ~]$ uptime
16:09:32 up 530 days, 1 min, 1 user, load average: 2.71, 2.44, 1.99

命令结果的后三位就是load的值了,分别代表1分钟、5分钟、15分钟的平均值。因为是平均值,15分钟更能代表系统的整体负载情况,如果1分钟的值很高,其他两个值很低,只能说明系统有瞬间的高负载。如果15分钟内,系统的平均负载都很大,表明问题持续存在,不是暂时现象。那么CPU load这个值多少算大呢,和CPU核数又有什么关系呢?

2.CPU load含义

CPU load是一段时间内CPU正在处理以及等待CPU处理的进程数之和的统计信息。

2.1单核CPU

当CPU完全空闲的时候,平均负荷为0(即load average的值为0);当CPU工作量饱和的时候,平均负荷为1;当有线程等待时,平均负荷为等待线程数+1,如果这个时候等待线程过多,等待时间就会长,需要考虑增加CPU 了。

来个经典比喻:

不妨把这个CPU想象成一座大桥,桥上只有一根车道,所有车辆都必须从这根车道上通过(很显然,这座桥只能单向通行),大桥的通行能力(一次10辆车),就是CPU的最大工作量;桥梁上的车辆,就是一个个等待CPU处理的进程(process)。

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

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

3)系统负荷为1.0,意味着大桥的所有路段都有车,也就是说大桥已经"满"了。但是必须注意的是,直到此时大桥还是能顺畅通行的。

4)系统负荷为1.7,意味着车辆太多了,大桥已经被占满了(100%),后面等着上桥的车辆为桥面车辆的70%。

以此类推,系统负荷2.0,意味着等待上桥的车辆与桥面的车辆一样多; 系统负荷3.0,意味着等待上桥的车辆是桥面车辆的2倍。 总之,当系统负荷大于1,后面的车辆就必须等待了;系统负荷越大,过桥就必须等得越久。 CPU的系统负荷,基本上等同于上面的类比。为了服务器顺畅运行,系统负荷最好不要超过1.0,这样就没有进程需要等待了,所有进程都能第一时间得到处理。 很显然,1.0是一个关键值,超过这个值,系统就不在最佳状态了,就需要动手干预了。

2.2多核CPU

当CPU核数是4时,系统的处理能力是单核CPU的4倍,这时候CPU工作量饱和时,平均负荷为4,即每个CPU正在处理一个负荷。

类比到这个小车过桥的比喻中,4核CPU相当于4车道大桥。

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

2)系统负荷为1.0,意味着大桥只有一条车道占满,其他车道空闲着,其实也不一定所有车辆挤一条车道上,可以平均分配到不同车道,每条车道负载0.25。

3)系统负荷为4,意味着大桥的4条路段都有车,也就是说大桥已经"满"了。但是必须注意的是,直到此时大桥还是能顺畅通行的。

4)系统负荷大于4,意味着车辆太多了,大桥已经被占满了(100%),后面已经有等着上桥的车辆了。

3.CPU load多大合适

这个仁者见仁,有人觉得CPU负载小于等于"内核数乘以0.5-0.7"算是一种理想状态。 比如4核CPU的服务器,理想负载是小于等于2,最好不要超过2.8,否则性能多少会受影响。个人感觉这个要具体情况具体分析,在监控中设置成CPU核数即可,当然如果长时间观察到CPU load饱满运行,就需要多加注意了。

什么是CPU load的更多相关文章

  1. Linux内核分析:页回收导致的cpu load瞬间飙高的问题分析与思考--------------蘑菇街技术博客

    http://mogu.io/156-156 摘要 本文一是为了讨论在Linux系统出现问题时我们能够借助哪些工具去协助分析,二是讨论出现问题时大致的可能点以及思路,三是希望能给应用层开发团队介绍一些 ...

  2. linux loadavg详解(top cpu load)

    目录 [隐藏] 1 Loadavg分析 1.1 Loadavg浅述 1.2 Loadavg读取 1.3 Loadavg和进程之间的关系 1.4 Loadavg采样 2 18内核计算loadavg存在的 ...

  3. CPU利用率和CPU负荷(CPU usage vs CPU load)

    对于CPU的性能监测,通常用top指令能显示出两个指标:cpu 利用率和cpu负荷. 其中%Cpu相关的内容: us表示用户进程cpu利用率,sy表示系统内核进程cpu利用率,ni表示运行正常进程消耗 ...

  4. 浅谈cpu.idle和cpu.load

    1.概述 大家经常对一个系统的容量进行评估时,会参考cpu.idle和cpu.load指标,但是这两个指标到底在什么区间,表示系统是正常或者异常呢,业内有不同的说法.因此本文搜集一些资料,并对一个系统 ...

  5. cpu load过高问题排查

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

  6. CPU load高而使用率低的问题分析

    最近服务器上出现了一个很诡异的问题,症状如下图所示: 查看进程发现: 如上图所示,非常多的df -h进程没有退出.于是手工kill掉这些 df -h进程.cpu load恢复正常. 至于为什么会有这么 ...

  7. 理解linux cpu load - 什么时候应该担心了

    译文原文: http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages 你可能已经很熟悉linux的平均load. ...

  8. Linux CPU Load Average

    理解Linux系统负荷 LINUX下CPU Load Average的一点研究 Linux load average负载量分析与解决思路 Understanding Linux CPU Load - ...

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

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

  10. 【操作系统之十一】任务队列、CPU Load、指令乱序、指令屏障

    一.CPU Loadcpu load是对使用或者等待cpu进程的统计(数量的累加):每一个使用(running)或者等待(runnable)CPU的进程,都会使load值+1;每一个结束的进程,都会使 ...

随机推荐

  1. 【年度开源、工具合集】牛津计划,DMTK,Graph Engine…提高你的工作效率!

    本篇合集包括以下三个部分的内容: 1.微软亚洲研究院过去一年的所有开源合集,如分布式机器学习工具包DMTK等. 2.利用微软研究院的技术提高工作效率的工具合集,如让没有机器学习背景的开发人员也能开发出 ...

  2. 万达乐园VS阿里帝国 谁将是未来娱乐产业的龙头?

    国内实体行业大佬王健林和互联网行业巨头马云,这次又不约而同地想到一块去了.从王健林叫板迪士尼大搞借势营销,到最近马云成立大文娱工作领导小组,明显的趋势表明娱乐越来越成为各界大佬们未来掘金的新战场.只不 ...

  3. Java版飞机订票系统

    关注微信公众号:Worldhello 回复 飞机订票系统 可获得系统源代码并可加群讨论交流 数据结构课程设计题目:          [飞机订票系统]            通过此系统可以实现如下功能 ...

  4. CSS——NO.10(设置技巧)

    */ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...

  5. JavaScript 预解析机制

    首先我们来看一段代码: <script> console.log(a); var a = 10; </script> 此时运行结果为   为什么会显示undefined呢?这就 ...

  6. Node REPL环境

    1.概述 REPL全称Read,Eval,Print,Loop,简单理解为接收用户输入,执行用户输入,打印执行结果并输出到控制台,进行下一次轮回,可以进行一些简单的测试,类似于浏览器的控制台. 命令行 ...

  7. 压力测试(七)-html可视化压测报告细讲

    1.阿里云Linux服务器 Jmeter压测实战之jtl文件生成和查看 简介: 利用软件从阿里云Centos服务器下载压测报告,讲解Jtl文件,并怎么查看文件 可以通过打开jmeter,新建线程组-& ...

  8. 一起了解 .Net Foundation 项目 No.16

    .Net 基金会中包含有很多优秀的项目,今天就和笔者一起了解一下其中的一些优秀作品吧. 中文介绍 中文介绍内容翻译自英文介绍,主要采用意译.如与原文存在出入,请以原文为准. Orchard CMS O ...

  9. Json转化的三种方式

    1. Gson 1.添加依赖 <dependency> <groupId>com.google.code.gson</groupId> <artifactId ...

  10. 手写Promise原理

    我的promise能实现什么? 1:解决回调地狱,实现异步 2:可以链式调用,可以嵌套调用 3:有等待态到成功态的方法,有等待态到失败态的方法 4:可以衍生出周边的方法,如Promise.resolv ...