linux php cpu,理解Linux CPU负载和 CPU使用率
CPU负载和 CPU使用率
这两个从一定程度上都可以反映一台机器的繁忙程度.
cpu使用率反映的是当前cpu的繁忙程度,忽高忽低的原因在于占用cpu处理时间的进程可能处于io等待状态但却还未释放进入wait。
平均负载(load average)是指某段时间内占用cpu时间的进程和等待cpu时间的进程数,这里等待cpu时间的进程是指等待被唤醒的进程,不包括处于wait状态进程。
以上分析可以看出,一台机器很有可能处于低cpu使用率高负载的情况,因此看机器的繁忙程度应该结合两者,从实际的使用情况观察,自己的一台双核志强2.8GHZ,2G内存的机器在平均负载到50左右,cpu使用率才接近100%(应用有不少io操作),这种情况下应用还算流畅,实际访问延迟不是很高。因此在cpu还空闲的情况下,如何提高io响应是减少负载的关键,很多人认为负载到几十了机器就非常繁忙了,我倒觉得如果这个时候cpu使用率比较低,则负载高可能不能很好说明问题,一旦cpu处理的进程处理完后,那些等待的进程也能立刻得到响应,这种情况下应该优化io读写速度。真到cpu使用率一直90%以上,即使平均负载只有个位数(比如某一个进程一直在运算),那机器其实也已经繁忙了~
其实,在前面的文章中,也有写到cpu使用率低负载高,原因分析 cpu使用率低,但是load很高,load很高的可能是IO
CPU负载的一个类比
判断系统负荷是否过重,必须理解load average的真正含义。下面,我根据"Understanding Linux CPU Load"这篇文章,尝试用最通俗的语言,解释这个问题。
首先,假设最简单的情况,你的电脑只有一个CPU,所有的运算都必须由这个CPU来完成。
那么,我们不妨把这个CPU想象成一座大桥,桥上只有一根车道,所有车辆都必须从这根车道上通过。(很显然,这座桥只能单向通行。)
系统负荷为0,意味着大桥上一辆车也没有。
系统负荷为0.5,意味着大桥一半的路段有车。
系统负荷为1.0,意味着大桥的所有路段都有车,也就是说大桥已经"满"了。但是必须注意的是,直到此时大桥还是能顺畅通行的。
系统负荷为1.7,意味着车辆太多了,大桥已经被占满了(100%),后面等着上桥的车辆为桥面车辆的70%。以此类推,系统负荷2.0,意味着等待上桥的车辆与桥面的车辆一样多;系统负荷3.0,意味着等待上桥的车辆是桥面车辆的2倍。总之,当系统负荷大于1,后面的车辆就必须等待了;系统负荷越大,过桥就必须等得越久。
CPU的系统负荷,基本上等同于上面的类比。大桥的通行能力,就是CPU的最大工作量;桥梁上的车辆,就是一个个等待CPU处理的进程(process)。
如果CPU每分钟最多处理100个进程,那么系统负荷0.2,意味着CPU在这1分钟里只处理20个进程;系统负荷1.0,意味着CPU在这1分钟里正好处理100个进程;系统负荷1.7,意味着除了CPU正在处理的100个进程以外,还有70个进程正排队等着CPU处理。
为了电脑顺畅运行,系统负荷最好不要超过1.0,这样就没有进程需要等待了,所有进程都能第一时间得到处理。很显然,1.0是一个关键值,超过这个值,系统就不在最佳状态了,你要动手干预了。
CPU负载-多处理器
上面,我们假设你的电脑只有1个CPU。如果你的电脑装了2个CPU,会发生什么情况呢?
2个CPU,意味着电脑的处理能力翻了一倍,能够同时处理的进程数量也翻了一倍。
还是用大桥来类比,两个CPU就意味着大桥有两根车道了,通车能力翻倍了。
所以,2个CPU表明系统负荷可以达到2.0,此时每个CPU都达到100%的工作量。推广开来,n个CPU的电脑,可接受的系统负荷最大为n.0。
CPU负载-多核处理器
芯片厂商往往在一个CPU内部,包含多个CPU核心,这被称为多核CPU。
在系统负荷方面,多核CPU与多CPU效果类似,所以考虑系统负荷的时候,必须考虑这台电脑有几个CPU、每个CPU有几个核心。然后,把系统负荷除以总的核心数,只要每个核心的负荷不超过1.0,就表明电脑正常运行。
怎么知道电脑有多少个CPU核心呢?
"cat /proc/cpuinfo"命令,可以查看CPU信息。"grep -c 'model name' /proc/cpuinfo"命令,直接返回CPU的总核心数。
系统负荷的经验法则
1.0是系统负荷的理想值吗?
不一定,系统管理员往往会留一点余地,当这个值达到0.7,就应当引起注意了。经验法则是这样的:
当系统负荷持续大于0.7,你必须开始调查了,问题出在哪里,防止情况恶化。
当系统负荷持续大于1.0,你必须动手寻找解决办法,把这个值降下来。
当系统负荷达到5.0,就表明你的系统有很严重的问题,长时间没有响应,或者接近死机了。你不应该让系统达到这个值。
对于我的机器,有24个core,那么,load多少合适呢?
[root@jiangyi01.sqa.zmf /home/ahao.mah/ALIOS_QA]#grep 'model name' /proc/cpuinfo | wc -l24
答案是:
[root@jiangyi01.sqa.zmf /home/ahao.mah/ALIOS_QA]#echo "0.7*24" |bc16.8
最佳观察时长
最后一个问题,"load average"一共返回三个平均值----1分钟系统负荷、5分钟系统负荷,15分钟系统负荷,----应该参考哪个值?
如果只有1分钟的系统负荷大于1.0,其他两个时间段都小于1.0,这表明只是暂时现象,问题不大。
如果15分钟内,平均系统负荷大于1.0(调整CPU核心数之后),表明问题持续存在,不是暂时现象。所以,你应该主要观察"15分钟系统负荷",将它作为电脑正常运行的指标。
更多Linux文章,请访问Linux教程栏目进行学习!
linux php cpu,理解Linux CPU负载和 CPU使用率相关推荐
- linux 串口驱动 理解,linux 串口驱动 理解
linux 串口 驱动 理解 一.核心数据结构 串口驱动有3个核心数据结构,它们都定义在 1.uart_driver uart_driver包含了串口设备名.串口驱动名.主次设备号.串口控制台(可选) ...
- linux load average,理解Linux中的Load Average
在Linux系统中,使用下面的命令: top w uptime (以上三个命令各有区别,top是以固定间隔显示进程的资源占用排名,w显示who and what they are doing,upti ...
- c语言 linux sd_深入理解Linux C语言内存管理
问题不能拖,我这就来学习一下吧,争取一次搞定. 在任何程序设计环境及语言中,内存管理都十分重要. 内存管理的基本概念 分析C语言内存的分布先从Linux下可执行的C程序入手.现在有一个简单的C源程序h ...
- linux僵尸进程理解,Linux为什么要设计一个“僵尸进程”状态?
评论 # re: Linux为什么要设计一个"僵尸进程"状态? 2011-05-24 12:34 nevergone 因为linus是僵尸:-( 回复 更多评论 # re: L ...
- linux僵尸进程理解,Linux僵尸进程详细解析
在fork()/execve()过程中,假设子进程结束时父进程仍存在,而父进程fork()之前既没安装SIGCHLD信号处理函数调用waitpid()等待子进程结束,又没有显式忽略该信号,则子进程成为 ...
- php 系统平均负载,理解 Linux 的平均负载和性能监控
<理解 Linux 的平均负载和性能监控>要点: 本文介绍了理解 Linux 的平均负载和性能监控,希望对您有用.如果有疑问,可以联系我们. 在本文中,我们将解释 Linux 系统中最症结 ...
- linux负载监控工具,理解 Linux 的平均负载和性能监控
在本文中,我们将解释 Linux 系统中最关键的管理任务之一--关于系统 / CPU 的负载(load)和平均负载(Load average)的性能监控. 首先来看所有的类 UNIX 系统中两个重要的 ...
- 深入理解 Linux 内核
Linux 内核系列文章 Linux 内核设计与实现 深入理解 Linux 内核 深入理解 Linux 内核(二) Linux 设备驱动程序 Linux设备驱动开发详解 文章目录 Linux 内核系列 ...
- 《Linux游戏编程》——理解Linux文件系统标准
Linux游戏编程 Programming Linux Games [美]John R. Hall 著 作者:[美]John R. Hall 单位:Loki Software, Inc. 时间:200 ...
最新文章
- 自定义定时器的一点总结
- OpenGL 学习笔记(3)绘制几何物体
- java 最少使用(lru)置换算法_一篇文章学会如何基于LRU-K算法设计本地缓存实现流量削峰...
- 全球 MEDC 2007 举行日期
- 计算机测试怎么提交,Win7电脑怎么测试上传速度?
- The rxfastforest algorithm case of kaggle
- 19年PDYZ冬令营游记
- 迅为IMX6ULL开发板Linux系统移植-NXP官方Linux源码编译
- python xlwt库的详细函数介绍,xlwt
- 微型计算机的拼音,微型计算机拼音
- IIS 发布网站无法显示CSS、背景及图片文件---另一个思路--终极方案
- java实现文件压缩打包(zip打包)(文件相关二)
- 【Python】使用分隔符拆分字符串
- ORACLE RAC 11.2.0.4 一节点出现Suspending MMON slave action kewrmrfsa_ for 82800 seconds
- LOJ #2155. 「POI2011 R1」同谋者 Conspiracy(深入性质分析)
- 一款易用的视频云是如何迅速积累客户的?
- CI2451无线收发2.4Gsoc芯片集成无线收发器和 8 位 RISC(精简指令集)MCU
- Unity Hair 毛发系统 初体验
- 布隆过滤器误判怎么办为什么会_说一说布隆过滤器
- harmonyos下载安装,harmonyos系统下载_harmonyos系统安装 v2.0_零度软件园
热门文章
- 壹连科技冲刺深交所:年营收14亿 65%收入来自宁德时代
- 初识DTW(动态时间规整)算法及Python实现例
- 【服务器管理】mount.nfs: Stale file handle的解决办法
- 微信WiFi认证的解决方案
- 区块链:Casper 机制的历史起源-第三篇
- 不用分片也能扩展 10 倍性能?简单了解以太坊 Turbo-Geth 客户端
- 数字赋能 共创未来憨猴科技“共域时代”年度大会成功举办
- 4月3日的中九pid,还是3月3日的
- WM_KILLFOCUS和WM_SETFOCUS
- 身体检查 生化全套 血常规 微量元素