我们知道判断一个系统的负载可以使用top,uptime等命令去查看,它分别记录了一分钟、五分钟、以及十五分钟的系统平均负载
例如我的某台服务器:
$ uptime
09:50:21 up 200 days, 15:07, 1 user, load average: 0.27, 0.33, 0.37
大部分的人都认为这个数字越小越好,其实有很多关联的提示信息,今天看到这个好文,应该可以给大家说清楚很多问题,转一下:
原文链接: http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages
你可能对于 Linux 的负载均值(load averages)已有了充分的了解。负载均值在 uptime 或者 top 命令中可以看到,它们可能会显示成这个样子:
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
Popularity: 11% [?]
转载自Linux系统Load average负载详细解释 | 懒人运维
分享到:
相关推荐
理解Linux系统中的Load average负载对于维护系统的稳定性和高效性非常重要。通过对负载平均值的监控和分析,可以及时发现潜在的问题并采取措施优化系统性能。希望本文能帮助读者更好地理解和运用这一重要概念。
在UNIX操作系统中,"Load Average"是一个至关重要的性能指标,它反映了系统在特定时间间隔内的平均负载情况。本文将深入探讨UNIX Load Average的概念,它的计算方法,以及如何利用这一信息来优化系统性能。 首先,...
在输入查看可用的CPU核数命令,获得12时,意味着本系统可用CPU核数12...系统负载/CPU负载–是Linux系统中CPU利用率过高或过低的度量;CPU正在执行或处于等待状态的进程数。 平均负载(load average)-是在给定的1、5和1
这里的“load average”是指系统负载平均值,它反映了在指定时间段内,系统处于就绪队列等待CPU执行的平均进程数。 负载平均值由三个数字组成,分别代表过去1分钟、5分钟和15分钟的平均负载。这些数字越低,表明...
Linux 命令查看系统平均负载的方法 通过 Linux 命令查看系统平均负载的方法是服务器管理员必备的技能之一。本文将介绍通过 Linux 命令查看系统平均负载的方法,从而帮助管理员更好地监控和管理服务器的性能。 一、...
在Unix和Linux操作系统中,Load Average是一个非常关键的性能指标,它用来衡量系统在特定时间段内的平均负载。本文将深入探讨Load Average的工作原理,并解析其计算方式,帮助你更好地理解和利用这一信息。 **1. ...
负载是 Linux 操作系统中一个非常重要的概念,通过使用 uptime 或者 top 命令,都可以看到一个负载的输出,形如 load average: 0.00, 0.03, 0.00。但是,man 文档里只是一笔带过,没有具体的给出负载的定义。因此,...
平均负载(load average)表示过去1分钟、5分钟和15分钟内系统任务的平均数,数值越低,表示系统越空闲。 例如: ``` 9:24am up 19:06, 1 user, load average: 0.00, 0.00, 0.00 ``` 这里的`load average`三个数值...
在使用uptime命令时,需要注意的是,load average值越高,表明系统的性能越差。如果load average值大于5,可能表示系统存在严重的性能问题。但是,这个值还应当除以CPU数目,以便更准确地评估系统的性能。 这三种...
其次,系统负载(Load Average)是另一个关键指标,表示在一段时间内系统中等待执行的平均进程数。Linux的`uptime`命令能显示1分钟、5分钟和15分钟的平均负载。如果负载持续高于CPU核心数,可能意味着系统过载,需要...
对于CPU使用率低但负载高的情况,问题可能出在“负载平均”(load average)上。负载平均值反映了在一段时间内系统中平均有多少任务在等待CPU处理。如果系统空闲,但负载平均值很高,这可能意味着存在僵死进程(D...
例如,"10:19:04 up 257 days, 18:56, 12 users, load average: 2.10, 2.10, 2.09"表示系统已运行257天18小时56分钟,有12个用户连接,平均负载分别为2.10、2.10和2.09。负载平均值是衡量系统繁忙程度的关键指标,...
5. Load Average 的概念:Load Average 是一个衡量系统负载的指标,即系统中所有进程的平均负载。Load Average 的值越高,表示系统的负载越高。 6. 系统信息的获取:通过读取/proc目录中的文件,可以获取系统的各种...
Linux 系统监控命令 Linux 系统监控命令是系统管理员不可或缺的一部分,通过这些命令可以实时监控系统的运行状态,快速定位问题,提高系统的稳定性和性能。本文将介绍 20 个常用的 Linux 系统监控工具,帮助管理员...
Uptime是一个简单而又实用的工具,它可以快速显示系统已经运行了多长时间,当前登录的用户数,以及系统的平均负载(load average)。系统的平均负载是指在特定时间间隔内,处于可运行状态和不可中断状态的平均进程数...
KDE Load Average Applet 是一款专为KDE桌面环境设计的小部件,它提供了实时的系统平均负载图表,帮助用户了解计算机系统的运行状况。这款工具是开源的,意味着它的源代码对公众开放,用户可以自由查看、修改和分发...
Load average 的值分为三个数字,分别表示 1分钟、5分钟、15分钟的系统平均负载。 五、Dstat 命令 Dstat 是一个多功能系统资源统计工具,它可以获取网络 I/O、磁盘、CPU 等信息。Dstat 的用法非常灵活,可以根据...
以下是20个Linux系统监控工具的详细介绍: 1. top命令:top命令提供了当前系统的实时动态视图,显示系统中CPU使用率最高的任务,并每5秒钟刷新一次。使用top命令可以快速地识别系统中的瓶颈和问题。 热键: * t:...