top命令中load average显示的是最近1分钟、5分钟和15分钟的系统平均负载。系统平均负载表示

系统平均负载被定义为在特定时间间隔内运行队列中(在CPU上运行或者等待运行多少进程)的平均进程树。如果一个进程满足以下条件则其就会位于运行队列中:

- 它没有在等待I/O操作的结果

- 它没有主动进入等待状态(也就是没有调用’wait’)

- 没有被停止(例如:等待终止)

Update:在Linux中,进程分为三种状态,一种是阻塞的进程blocked process,一种是可运行的进程runnable process,另外就是正在运行的进程running process。当进程阻塞时,进程会等待I/O设备的数据或者系统调用。

进程可运行状态时,它处在一个运行队列run queue中,与其他可运行进程争夺CPU时间。 系统的load是指正在运行running one和准备好运行runnable one的进程的总数。比如现在系统有2个正在运行的进程,3个可运行进程,那么系统的load就是5。load average就是一定时间内的load数量。

一般来说只要每个CPU的当前活动进程数不大于3那么系统的性能就是良好的,如果每个CPU的任务数大于5,那么就表示这台机器的性能有严重问题。对于上面的例子来说,假设系统有两个CPU,那么其每个CPU的当前任务数为:8.13/2=4.065。这表示该系统的性能是可以接受的。

在Linux系统中,uptime、w、top等命令都会有系统平均负载load average的输出

load average: 0.09, 0.05, 0.01

很多人会这样理解负载均值:三个数分别代表不同时间段的系统平均负载(一分钟、五 分钟、以及十五分钟),它们的数字当然是越小越好。数字越高,说明服务器的负载越 大,这也可能是服务器出现某种问题的信号。

而事实不完全如此,是什么因素构成了负载均值的大小,以及如何区分它们目前的状况是 “好”还是“糟糕”?什么时候应该注意哪些不正常的数值?

回答这些问题之前,首先需要了解下这些数值背后的些知识。我们先用最简单的例子说明, 一台只配备一块单核处理器的服务器。

行车过桥

一只单核的处理器可以形象得比喻成一条单车道。设想下,你现在需要收取这条道路的过桥 费 — 忙于处理那些将要过桥的车辆。你首先当然需要了解些信息,例如车辆的载重、以及 还有多少车辆正在等待过桥。如果前面没有车辆在等待,那么你可以告诉后面的司机通过。 如果车辆众多,那么需要告知他们可能需要稍等一会。

因此,需要些特定的代号表示目前的车流情况,例如:

0.00 表示目前桥面上没有任何的车流。 实际上这种情况与 0.00 和 1.00 之间是相同的,总而言之很通畅,过往的车辆可以丝毫不用等待的通过。

1.00 表示刚好是在这座桥的承受范围内。 这种情况不算糟糕,只是车流会有些堵,不过这种情况可能会造成交通越来越慢。

超过 1.00,那么说明这座桥已经超出负荷,交通严重的拥堵。 那么情况有多糟糕? 例如 2.00 的情况说明车流已经超出了桥所能承受的一倍,那么将有多余过桥一倍的车辆正在焦急的等待。3.00 的话情况就更不妙了,说明这座桥基本上已经快承受不了,还有超出桥负载两倍多的车辆正在等待。

上面的情况和处理器的负载情况非常相似。一辆汽车的过桥时间就好比是处理器处理某线程 的实际时间。Unix 系统定义的进程运行时长为所有处理器内核的处理时间加上线程 在队列中等待的时间。

和收过桥费的管理员一样,你当然希望你的汽车(操作)不会被焦急的等待。所以,理想状态 下,都希望负载平均值小于 1.00 。当然不排除部分峰值会超过 1.00,但长此以往保持这 个状态,就说明会有问题,这时候你应该会很焦急。

“所以你说的理想负荷为 1.00 ?”

嗯,这种情况其实并不完全正确。负荷 1.00 说明系统已经没有剩余的资源了。在实际情况中 ,有经验的系统管理员都会将这条线划在 0.70:

“需要进行调查法则”: 如果长期你的系统负载在 0.70 上下,那么你需要在事情变得更糟糕之前,花些时间了解其原因。

“现在就要修复法则”:1.00 。 如果你的服务器系统负载长期徘徊于 1.00,那么就应该马上解决这个问题。否则,你将半夜接到你上司的电话,这可不是件令人愉快的事情。

“凌晨三点半锻炼身体法则”:5.00。 如果你的服务器负载超过了 5.00 这个数字,那么你将失去你的睡眠,还得在会议中说明这情况发生的原因,总之千万不要让它发生。

那么多个处理器呢?我的均值是 3.00,但是系统运行正常!

哇喔,你有四个处理器的主机?那么它的负载均值在 3.00 是很正常的。

在多处理器系统中,负载均值是基于内核的数量决定的。以 100% 负载计算,1.00 表示单个处理器,而 2.00 则说明有两个双处理器,那么 4.00 就说明主机具有四个处理器。

回到我们上面有关车辆过桥的比喻。1.00 我说过是“一条单车道的道路”。那么在单车道 1.00 情况中,说明这桥梁已经被车塞满了。而在双处理器系统中,这意味着多出了一倍的 负载,也就是说还有 50% 的剩余系统资源 — 因为还有另外条车道可以通行。

所以,单处理器已经在负载的情况下,双处理器的负载满额的情况是 2.00,它还有一倍的资源可以利用。

多核与多处理器

先脱离下主题,我们来讨论下多核心处理器与多处理器的区别。从性能的角度上理解,一台主 机拥有多核心的处理器与另台拥有同样数目的处理性能基本上可以认为是相差无几。当然实际 情况会复杂得多,不同数量的缓存、处理器的频率等因素都可能造成性能的差异。

但即便这些因素造成的实际性能稍有不同,其实系统还是以处理器的核心数量计算负载均值 。这使我们有了两个新的法则:

“有多少核心即为有多少负荷”法则: 在多核处理中,你的系统均值不应该高于处理器核心的总数量。

“核心的核心”法则: 核心分布在分别几个单个物理处理中并不重要,其实两颗四核的处理器 等于 四个双核处理器 等于 八个单处理器。所以,它应该有八个处理器内核。

审视我们自己

让我们再来看看 uptime 的输出

~ $ uptime

23:05 up 14 days, 6:08, 7 users, load averages: 0.65 0.42 0.36

这是个双核处理器,从结果也说明有很多的空闲资源。实际情况是即便它的峰值会到 1.7,我也从来没有考虑过它的负载问题。

那么,怎么会有三个数字的确让人困扰。我们知道,0.65、0.42、0.36 分别说明上一分钟、最后五分钟以及最后十五分钟的系统负载均值。那么这又带来了一个问题:

我们以哪个数字为准?一分钟?五分钟?还是十五分钟?

其实对于这些数字我们已经谈论了很多,我认为你应该着眼于五分钟或者十五分钟的平均数 值。坦白讲,如果前一分钟的负载情况是 1.00,那么仍可以说明认定服务器情况还是正常的。 但是如果十五分钟的数值仍然保持在 1.00,那么就值得注意了(根据我的经验,这时候你应 该增加的处理器数量了)。

那么我如何得知我的系统装备了多少核心的处理器?

在 Linux 下,可以使用

cat /proc/cpuinfo

获取你系统上的每个处理器的信息。如果你只想得到数字,那么就使用下面的命令:

grep 'model name' /proc/cpuinfo | wc -l

linux中负载值为多少正常_linux查看系统负载常用指标与命令相关推荐

  1. linux中负载值为多少正常_linux 查看负载和使用情况 top

    top命令是看当前进程的cpu和内存等的占用情况 参数解析 top - 20:54:37 up 228 days, 11:03, 3 users, load average: 0.54, 0.33, ...

  2. linux中如何复制文件并重命名_linux 下文件重命名/移动/复制命令(转)

    linux下重命名文件:使用mv命令就可以了, 例:要把名为:abc   重命名为:123 可以这样操作: 重命名:MV命令 1.进入你的文件目录,运行命令:   /cd  dir  (dir指的是你 ...

  3. linux中负载值为多少正常_Linux load average负载量分析与解决思路

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

  4. PHP允许输入负数,php exec在linux中返回值不能为负数

    php exec在linux中返回值不能为负数有需要的朋友可参考一下. 我们先来了解一下关于exec函数的使用方法 exec() 原型:  代码如下 复制代码 string exec (string ...

  5. linux显示mem进行排序,Linux查看系统负载(CPU和MEM考虑)

    查看占用CPU最高的10个进程 [tidb@:vg_adn_tidbCkhsTest:172.31.30.62 ~/tidb-ansible]$ps aux | grep -v PID | sort ...

  6. Linux命令之查看系统负载

    网站服务器经常会遇到linux系统负载的问题,那么linux下查看系统负载的命令有哪些呢?  linux下查看负载的主要命令有下面一些: top, uptime,w,vmstat 1.top命令查看l ...

  7. Linux中强制结束一个进程的终极方法和其他常用命令

    Linux中强制结束一个进程的终极方法和其他常用命令 1.查进程 ps命令查找与进程相关的PID号: ps a 显示现行终端机下的所有程序,包括其他用户的程序. ps -A 显示所有程序. ps c ...

  8. 使用w查看系统负载、vmstat命令、top命令、sar命令、nload命令

    使用w查看系统负载 系统平均负载被定义为在特定时间间隔内运行队列中的平均进程数 如果一个进程满足以下条件则其就会位于运行队列中: 它没有在等待I/O操作的结果 它没有主动进入等待状态(也就是没有调用' ...

  9. linux中负载值为多少正常_Linux系统Load average负载详细解释

    我们知道判断一个系统的负载可以使用top,uptime等命令去查看,它分别记录了一分钟.五分钟.以及十五分钟的系统平均负载-- AD: 我们知道判断一个系统的负载可以使用top,uptime等命令去查 ...

最新文章

  1. 地理信息系统论坛_高端论坛西南交通大学朱庆教授:应急测绘智能服务关键技术及重大应用...
  2. easyexcel安全扫描报php,easyExcel使用以及踩过的坑
  3. 网站 html 中英文切换 - API 总结篇
  4. python matplotlib画图遇到的问题——画多个子图
  5. Windows 7 常用快捷键 命令
  6. 我晕,代码又写错了,操你大爷
  7. 同表复制一条数据,除主键外,其他值相同
  8. 机器学习常用算法总结
  9. H3CSE培训阶段1
  10. axure 调整中继器列宽_Axure中继器:实现“万能”数据表模板的方法
  11. android qq 邮箱格式,qq邮箱怎么填写格式 qq邮箱格式写法介绍
  12. 手机抓包之fiddler工具使用记录
  13. android手机做电脑的显示器,怎样用手机当电脑显示器
  14. 拳皇世界服务器维护,拳皇世界3月1日更新维护公告 多组服务器开启数据互通[图]...
  15. 用matlab调节窗宽窗位的代码,基于HTML5的PACS HTML5图像处理(7)实现客户端JS调整窗宽窗位...
  16. 教程篇(7.0) 09. FortiGate安全 应用控制 ❀ Fortinet 网络安全专家 NSE 4
  17. android友盟微信分享到朋友圈,2020年友盟分享到微信朋友圈
  18. 自动表单生成工具说明(后端、桌面、web、移动端)
  19. Babel转码器详解
  20. 算法笔记——数学相关

热门文章

  1. 计算机数据压缩说课,第3章多媒体数据压缩.ppt
  2. bzoj1123 BLO
  3. AMA预告|章鱼加速器如何在熊市助力 Web3 创业
  4. 安卓手机格式化怎么弄_安卓手机怎样进入格式化?
  5. Windows系统安装了虚拟机后,网络无法修复且无网络连接如何修复?跟随作者一起来寻找问题并解决吧
  6. 《鸟哥的Linux私房菜-基础篇》学习笔记
  7. Process terminated以及出现Dependency not found的情况
  8. Windows 7 绿联蓝牙适配器5.0连接蓝牙耳机失败解决方案
  9. v$sql、v$sqlarea、v$sqltext、v$sql_plan
  10. mongodb 跟踪SQL语句及慢查询收集