这里要区别CPU负载和CPU利用率,它们是不同的两个概念,但它们的信息可以在同一个top命令中进行显示。CPU利用率显示的是程序在运行期间实时占用的CPU百分比,这是对一个时间段内CPU使用状况的统计,通过这个指标可以看出在某一个时间段内CPU被占用的情况, 如果被占用时间很高,那么就需要考虑CPU是否已经处于超负荷运作。而CPU负载显示的是在一段时间内CPU正在处理以及等待CPU处理的进程数之和的统计信息,也就是CPU使用队列的长度的统计信息。

CPU利用率高并不意味着负载就一定大,可能这个任务是一个CPU密集型的。一样CPU低利用率的情况下是否会有高Load Average的情况产生呢?理解占有时间和使用时间就可以知道,当CPU分配时间片以后,是否使用完全取决于使用者,因此完全可能出现低利用率高Load Average的情况。另外IO设备也可能导致CPU负载高。

由此来看,仅仅从CPU的使用率来判断CPU是否处于一种超负荷的工作状态还是不够的,必须结合Load Average来全局的看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负载是基于内核数来计算的,即“有多少内核,即有多少负载”,如单核最好不要超过100%,也就是负载为1.00,如此类推。

Linux里有一个/proc目录,存放的是当前运行系统的虚拟映射,其中有一个文件为cpuinfo,这个文件里存放着CPU的信息。/proc/cpuinfo文件按逻辑CPU而非真实CPU分段落显示信息,每个逻辑CPU的信息占用一个段落,第一个逻辑CPU标识从0开始。

要理解该文件中的CPU信息,有几个相关的概念要知道,如:processor表示逻辑CPU的标识、model name表示真实CPU的型号信息、physical id表示真实CPU和标识、cpu cores表示真实CPU的内核数等等。

逻辑CPU的描述:现在的服务器一般都使用了“超线程”(Hyper-Threading,简称HT)技术来提高CPU的性能。超线程技术是在一颗CPU同时执行多个程序而共同分享一颗CPU内的资源,理论上要像两颗CPU一样在同一时间执行两个线程。虽然采用超线程技术能同时执行两个线程,但它并不象两个真正的CPU那样,每各CPU都具有独立的资源。当两个线程都同时需要某一个资源时,其中一个要暂时停止,并让出资源,直到这些资源闲置后才能继续。因此超线程的性能并不等于两颗CPU的性能。具有超线程技术的CPU还有一些其它方面的限制。

转载于:https://blog.51cto.com/12306609/2286610

linux负载很高是什么原因导致的?相关推荐

  1. linux分区压力测试,stress-Linux系统压力测试工具使用及系统负载很高的几种场景测试...

    安装 yum install stress stress-ng -y stess-ng是stress的下一代,功能更加完善 常用选项 -c,--cpu:代表进程个数(每个进程会占用一个cpu,当超出c ...

  2. centos7 gam_server进程导致CPU使用率100%,系统负载很高

    现象 gam_server的进程占用吃满cpu,导致系统负载很高,top命令卡死 作用 gam_server是gamin的二进制文件,作用是文件交替监控 方案 找到最高的进程PID top是Linux ...

  3. 第三代测序成本偏高是什么原因导致的? 是看了这道题下面的邹捷萌回答:现在基因测序的瓶颈主要在哪里?精度?速度? 在精确度方面第三代测序已经很高了,但目前国内生物实验室的测序还是以二代为主,推测成本可能

    第三代测序成本偏高是什么原因导致的? 是看了这道题下面的邹捷萌回答:现在基因测序的瓶颈主要在哪里?精度?速度? 在精确度方面第三代测序已经很高了,但目前国内生物实验室的测序还是以二代为主,推测成本可能 ...

  4. oracle导致的负载高,Oracle 11g CPU负载很高紧急处理【负载100%】

    \\ 查询负载很高前35个进程 ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head -35 \\ 查询前35负载高的sPID ps aux|gr ...

  5. mysql连接数thread_MySQL数据库负载很高连接数很多怎么处理

    MySQL数据库负载很高连接数很多怎么处理 在MySQL数据库连接数很多,而且大多属于活跃的状态时MySQL机器基本上负载很高,属于基本上快要死去的状态了. 这时怎么办呢? 一.可能有两个办法: 方法 ...

  6. cpu负载很高而使用率很低的缘故

    cpu负载很高而使用率很低的缘故 可以用#hdparm  -tT   /dev/sda1       来测试 Timing cached reads:   4624 MB in  2.00 secon ...

  7. 解决Linux 负载过高问题过程记录

    解决问题的思路 1.top命令查看该机器的负载状况 2.cd  /proc/pid 查看对应高占用程序的位置 3.进入对应程序中查看日志,根据CPU和内存这两个因素分析 4.ps -ajxf 查看进程 ...

  8. cpu负载过高产生的原因及排查

    之前面试被问到,造成CPU load过高的原因有哪些?如何快速排查其原因? 开一贴,总结该相关知识 什么是cpu load 值 top命令中显示的load average即为最近1分钟.5分钟和15分 ...

  9. 国外服务器上玩游戏延迟很高,什么原因造成的?

    在国外服务器玩游戏为什么延迟很高?有的比较热门的国际游戏,为了玩家通常都会将整个游戏的区服划分为亚服.欧服.美服.东南亚服.韩服等等,这主要是为了玩家有个良好的游戏体验,那为什么在外服(国外服务器)上 ...

最新文章

  1. const 修饰指针
  2. 强化学习最新作品:谷歌最新思想、MIT新书推荐、Sutton经典之作!
  3. numpy 中的三个特别的索引操作 c_, r_, s_
  4. armbian nginx 部署博客_从零开始搭建服务器之更加优雅地部署项目
  5. MatLab GUI Load .mat File 导入mat文件
  6. node.js初步认识
  7. Xcode代码块的创建、使用和删除
  8. 《集体智慧编程》第六章
  9. GotFocus和PreviewLeftButtonDown事件
  10. python位运算符_NumPy按位运算符解析和实例详解
  11. 定题信息服务是从什么角度_信息管理练习题2
  12. mac安装热更新插件
  13. 手机论文查重软件哪个靠谱?
  14. GNU ARM Toolchain 初学者入门指南
  15. PackageManager.hasSystemFeature Android SystemServer裁剪
  16. 计算机二级函数lookup函数,Lookup函数“0/”结构的详细剖析
  17. 根据四个点坐标排列出左上右上右下左下位置关系
  18. Java笔记01——JAVA基础部分
  19. 时序分析基本概念介绍--Timing Arc
  20. html 6是什么格式,ac6是什么格式

热门文章

  1. linux命令gcc常用选项
  2. 8.STM32中对ADC1_Config()函数(ADC1_GPIO_Config()和ADC1_Mode_Config())的理解(自定义)测试ADC转换电压值输出到终端上。
  3. Linux查看所有用户和组信息
  4. Java 10更新汇总,新的编译器通吃主流编程语言
  5. Java基础——组合关系
  6. 2017.5.23 -- 学习记录
  7. 浏览器标准模式与怪异模式的区别
  8. 测试JdbcTemplate执行SQL语句和存储过程
  9. CSDN-Code平台使用过程中的5点经验教训
  10. Mopaas 初体验