今天早上查看服务器,发现负载过高

10:06:03 up 33 days, 23:33,  3 users,  load average: 9.78, 9.88, 10.10

以前不是我在维护这台服务器,刚接手!

一、警报信息的三个参数到底是什么意思?
9.78, 9.88, 10.10分别代表前一分钟,五分钟,十五分钟的平均CPU负载,最重要的指标是最后一个数字,即前15分钟的平均CPU负载,这个数字越小越好。所谓CPU负载指的是一段时间内任务队列的长度,通俗的讲,就是一段时间内一共有多少任务在使用或等待使用CPU。
二、除了Nagios,还有哪些工具可以查看CPU负载?
可以使用top命令、uptime命令,特别是top命令,功能强大,不仅仅可以用来查看CPU负载。
三、CPU负载怎么理解?是不是CPU利用率?
这里要区别CPU负载和CPU利用率,它们是不同的两个概念,但它们的信息可以在同一个top命令中进行显示。CPU利用率显示的是程序在运行期间实时占用的CPU百分比,而CPU负载显示的是一段时间内正在使用和等待使用CPU的平均任务数。CPU利用率高,并不意味着负载就一定大。网上有篇文章举了一个有趣比喻,拿打电话来说明两者的区别,我按自己的理解阐述一下。
某公用电话亭,有一个人在打电话,四个人在等待,每人限定使用电话一分钟,若有人一分钟之内没有打完电话,只能挂掉电话去排队,等待下一轮。电话在这里就相当于CPU,而正在或等待打电话的人就相当于任务数。
在电话亭使用过程中,肯定会有人打完电话走掉,有人没有打完电话而选择重新排队,更会有新增的人在这儿排队,这个人数的变化就相当于任务数的增减。为了统计平均负载情况,我们5秒钟统计一次人数,并在第1、5、15分钟的时候对统计情况取平均值,从而形成第1、5、15分钟的平均负载。
有的人拿起电话就打,一直打完1分钟,而有的人可能前三十秒在找电话号码,或者在犹豫要不要打,后三十秒才真正在打电话。如果把电话看作CPU,人数看作任务,我们就说前一个人(任务)的CPU利用率高,后一个人(任务)的CPU利用率低。
当然, CPU并不会在前三十秒工作,后三十秒歇着,只是说,有的程序涉及到大量的计算,所以CPU利用率就高,而有的程序牵涉到计算的部分很少,CPU利用率自然就低。但无论CPU的利用率是高是低,跟后面有多少任务在排队没有必然关系。
四、了解了CPU负载的含义,我们如何来降低服务器的CPU负载呢?
最简单办法的是更换性能更好的服务器,不要想着仅仅提高CPU的性能,那没有用,CPU要发挥出它最好的性能还需要其它软硬件的配合。
在服务器其它方面配置合理的情况下,CPU数量和CPU核心数(即内核数)都会影响到CPU负载,因为任务最终是要分配到CPU核心去处理的。两块CPU要比一块CPU好,双核要比单核好。
因此,我们需要记住,除去CPU性能上的差异,CPU负载是基于内核数来计算的!有一个说法,“有多少内核,即有多少负载”。
五、那么,本文开头的CPU负载分担到每个CPU上的负载是多少呢?那就要看我这台服务器有一共有多少个内核了。
Linux里有一个/proc目录,存放的是当前运行系统的虚拟映射,其中有一个文件为cpuinfo,这个文件里存放着CPU的信息。我们可以直接打开查看,或者过滤关键字进行查看,因为文件内容比较多,所以一般我们需要过滤关键字。
/proc/cpuinfo文件按逻辑CPU而非真实CPU分段落显示信息,每个逻辑CPU的信息占用一个段落,第一个逻辑CPU标识从0开始。我们首先要明白这一点,至于什么是逻辑CPU,下面会提到。要理解该文件中的CPU信息,有几个相关的概念要知道:
processor:逻辑CPU的标识
model name:真实CPU的型号信息
physical id:真实CPU和标识
cpu cores:真实CPU的内核数
  1. $>grep ‘model name’ /proc/cpuinfo |uniq

  2. model name : Intel(R) Xeon(R) CPU  E7400  @ 1.86GHz

  1. $>grep ‘cpu cores’ /proc/cpuinfo |uniq

  2. 2

可以看出,该服务器CPU型号为Intel(R) Xeon(R) CPU E7400,CPU是双核.
前面我们说CPU负载是基于CPU内核数计算的,那么以前十五分钟的平均负载数10.49为例,分配到每个核心上面负载在5以上.
这个负载是否是合理的呢?那就要看理想CPU负载的标准是什么样子的了。
六、CPU负载为多少才算比较理想?
这个有争议,各有各的说法,我个人比较赞同CPU负载小于等于0.7算是一种理想状态。
不管某个CPU的性能有多好,1秒钟能处理多少任务,我们可以认为它无关紧要,虽然事实并非如此。在评估CPU负载时,我们只以5秒钟为单位为统计任务队列长度。如果每隔5秒钟统计的时候,发现任务队列长度都是1,那么CPU负载就为1。假如我们只有一个单核的CPU,负载一直为1,意味着没有任务在排队,还不错。
我的服务器每个内核的负载为1的话,总负载为2。这就是说,如果我的服务器的CPU负载长期保持在2左右,还可以接受。但实际上CPU负载已经达到9以上了.
但是每个内核的负载为1,并不能算是一种理想状态!这意味着我们的CPU一直很忙,不得清闲。网上有说理想的状态是每个内核的负载为0.7左右,我比较赞同,0.7乘以内核数,得出服务器理想的CPU负载,比如我这台服务器,负载在1.5以下就可以。

转载于:https://blog.51cto.com/wangyh/1250363

linux 系统负载相关推荐

  1. linux 系统负载异常,linux 系统负载的问题

    linux 系统负载的问题 1:load Average 1.1:什么是Load?什么是Load Average? Load 就是对计算机干活多少的度量(WikiPedia:the system Lo ...

  2. linux系统负载检查方法

    1:load Average    1.1:什么是Load?什么是Load Average?    Load 就是对计算机干活多少的度量(WikiPedia:the system Load is a ...

  3. linux 系统负载高 如何检查

    1:load Average 1.1:什么是Load?什么是Load Average? Load 就是对计算机干活多少的度量(WikiPedia:the system Load is a measur ...

  4. linux负载的单位是,Linux系统负载

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 初识负载 我们平时使用top或者uptime时可以看到打印输出的系统平均负载(方便起见,后文都简称负载),分别是1分钟. ...

  5. linux 负载高 标准,linux 系统负载高 如何检查

    1:load Average 1.1:什么是Load?什么是Load Average? Load 就是对计算机干活多少的度量(WikiPedia:the system Load is a measur ...

  6. 路由器linux系统负载,linux 系统负载 释义

    1:load Average 1.1:什么是 Load?什么是 Load Average? Load  就是对计算机干活多少的度量(WikiPedia:the system Load is a mea ...

  7. Linux疑难杂症解决方案100篇(十)-uptime命令查看linux系统负载

    uptime 另外还有一个参数 -V(大写),是用来查询版本的 procps是一个实用程序包,主要包括ps top kill等程序主要用来显示与控制一些系统信息,进程状态之类的内容. 以下显示输入up ...

  8. linux系统负载状态检查脚本

    为了便于分析问题,编写了一个linux状态检查脚本,脚本可放置任意目录,脚本执行检测后会输出日志记录到当前目录下.直接执行脚本可用于一次检测,可通过日志进行分析.如果需要长时间监测,可执行-x参数,脚 ...

  9. linux系统负载查看进程,Linux查看系统的负载

    有的时候突然觉得系统很慢,但是却不知道问题出在哪里,那么就需要查看系统的负载. [root@client1 ~]# top top - 17:06:38 up 2 days,  3:06,  1 us ...

最新文章

  1. java jtable逐行遍历_Java获取JTable值(每行)
  2. linux 存储映射lun 给_在Linux中针对物理磁盘和LUN映射Oracle ASM磁盘
  3. Linux嵌入式驱动管理调试平台 ------ 我的第一个开源项目
  4. Response_功能介绍
  5. 移动端常见的一些兼容性问题
  6. Java并发编程之调度线程池
  7. 理解 Linux 条件变量
  8. C语言项目源代码大全2021最新!
  9. STM32使用MCUISP下载程序教程
  10. python代码服务器上运行报错
  11. @Resource和@Autowired注解的区别
  12. c语言通讯录设计毕业论文,本科毕业设计(论文)_c语言.doc
  13. 【生产力++】脚本自动化提取待复习内容 极大提高复习效率(下)
  14. 《浅入浅出》-RocketMQ
  15. 基于springboot的资产管理系统
  16. 真方位角计算文献汇总:球面三角形两点之间的方位
  17. 自动驾驶|苹果证实已收购自动驾驶初创公司Drive.ai 价格尚未披露
  18. 男戴观音女戴佛有依据吗?
  19. skype8.34 新版本不能启动/打开
  20. 员工和老板的差距不只是能力,还有战略思维

热门文章

  1. 进度条(python 实现)
  2. byte数组和正数BigInteger之间的相互转换
  3. 微信消息类型和事件类型
  4. Windows 下面 redis 发布为服务的官方方法
  5. 开源播放器 ijkplayer (一) :使用Ijkplayer播放直播视频
  6. JavaScript工具库之Lodash
  7. UVA 10229 Modular Fibonacci
  8. JavaScript脚本放在哪里
  9. MyEclipse数据库连接配置(以Oracle为例)
  10. hdu 1166 敌兵布阵