今天有一个电话面试,面试官问我:CentOS怎么查看CPU负载?我说:看top的第一行有load average。面试官又问:为什么从这就判定是负载高呢?依据是什么呢?然后... 然后我就尴尬了,挂了电话赶紧查资料恶补一下(在这里吐槽一下自己)。
使用Linux的朋友都知道如何查看Unix/Linux load的值,这边我也重复一下查看load的方法:

load average 后面三个值代表系统在1分钟、5分钟和15分钟的负载情况,都知道数字越高表示系统负载越大,第一直觉就是这个系统不行了。那么到底多高的负载才算高负载? 我们又如何去判断系统是否已经高负载呢?
1. 什么是load average?
load average的就是一定时间内计算机有多少个active_tasks,也就是说是计算机的任务执行队列的长度,cpu计算的队列。
2. load average多少是正常?
既然load是cpu计算的队列,那就应该和cpu个处理方式和cpu的个数有关系。所以我个人认为应该按系统识别的cpu个数来确定load的临界值,系统识别为8个cpu,那么load为8就是临界点,高于8就属于over load了。
3. 什么叫系统识别CPU个数?
这里涉及到cpu物理个数和超线程技术的问题。对于单处理器在满负载的情况下1.00,则双处理器的负载满额的情况是 2.00,它还有一倍的资源可以利用。
从性能的角度上理解,一台主机拥有多核心的处理器与另台拥有同样数目的处理性能基本上可以认为是相差无几。当然实际 情况会复杂得多,不同数量的缓存、处理器的频率等因素都可能造成性能的差异。但即便这些因素造成的实际性能稍有不同,其实系统还是以处理器的核心数量计算负载均值 。这使我们有了两个新的法则:
  “有多少核心即为有多少负荷”法则: 在多核处理中,你的系统均值不应该高于处理器核心的总数量。
  “核心的核心”法则: 核心分布在分别几个单个物理处理中并不重要,其实两颗四核的处理器 等于 四个双核处理器 等于 八个单处理器。所以,它应该有八个处理器内核。
4. 如何查看系统的CPU个数?
在 Linux 下,可以使用从/proc/cpuinfo文件获取你系统上的逻辑处理器的数量:

[root@localhost ~]# cat /proc/cpuinfo
5.CPU高不等同于load高
在Unix/Linux可能经常会遇到cpu的使用率为100%,但是load却不高!这是为什么呢?因为几乎所有的任务和会和CPU进行交互,但是由于各个设备的使用频率不同,造成了不能同步进行的问题。比如说,当对硬盘进行读写的时候,出现IO的等待时候,事实上cpu已经被切换到别的进程上了。该任务就处于等待状态,当这样的任务过多,导致队列长度过大,这样就体现到负载过大了,但实际是此时cpu被分配去干执行别的任务或空闲,因此CPU高不等同于load高,load高也不能于cpu高

最新文章

  1. css新特性 box-flex/flex 弹性盒状模型
  2. Elementory os install .net core
  3. BZOJ3830 : [Poi2014]Freight
  4. ACM题目————装箱问题
  5. 你必须知道的28个HTML5特征、窍门和技术
  6. 6.html5分组元素
  7. BZOJ 1151 傲娇的人 排序
  8. Android的Manifest配置文件介绍
  9. KeyEvent
  10. 初创互联网公司简明创业指南 - YC新掌门Sam Altman
  11. python 函数递归
  12. python之面向对象深入探测
  13. 【COCOS2DX-游戏开发之三一】之 坐标系(下) convertToNodeSpace和convertToWorldSpace
  14. [HNOI2015]菜肴制作(拓扑排序)
  15. 【做题】hdu5514 Frogs——另类容斥
  16. java的Timer和TimerTask
  17. Cloudera Manager 4.6 安装部署hadoop CDH集群
  18. linux命令(31):more
  19. 【Thinking in Java, 4e】初始化与清理
  20. matplotlib画图实例:pyplot、pylab模块及作图參数

热门文章

  1. 第31篇-方法调用指令之invokevirtual
  2. Pogo-Cow S
  3. 与 Python 之父聊天:更快的 Python!
  4. Codeforces Round #738 (Div. 2) D2题解
  5. /etc/hosts 详解
  6. linux查看和修改时间
  7. springboot利用mock进行junit单元测试,测试controller
  8. 用户登录成功后重新获取新的Session
  9. 实验8:数据平面可编程实践——P4
  10. [loj2135]幻想乡战略游戏