负载平均值的含义
负载平均值是通过uptime和top命令显示的三个数字,分别代表不同时间段的平均负载(1分钟、5分钟和15分钟的平均值)。这三个数字越低越好,较高的数字意味着系统可能存在问题或过载。然而,并没有一个固定的阈值来判断“好”与“坏”的负载平均值。关键在于理解这些数字背后的含义,并根据实际情况采取相应的措施。
单核处理器的比喻
如果将CPU比作一座只有一条车道的桥梁,那么负载平均值就像是等待过桥的车队长度。理想情况下,我们希望没有车辆等待,即CPU负载为0.00。当负载为1.00时,意味着桥梁(CPU)已经满载,如果交通量继续增加,就会出现拥堵。如果负载超过1.00,则意味着有车辆排队等待,负载越高,排队的车辆越多。
理想负载和实际情况
理想情况下,CPU负载应保持在1.00以下,这样可以确保有足够的缓冲空间。然而,实际中,许多系统管理员会将0.70作为警戒线,如果负载平均值持续高于0.70,就应该开始调查原因。如果负载平均值持续高于1.00,则需要立即解决问题,否则可能会导致更严重的后果。
多处理器系统
对于多处理器系统,负载平均值是相对于可用的处理器核心数量的。例如,四核处理器系统的“100%利用率”标记是4.00。这意味着,如果你的系统有四个核心,那么负载3.00仍然是健康的。
如何解读负载平均值
在uptime命令的输出中,有三个负载平均值:最近一分钟的平均值、最近五分钟的平均值和最近十五分钟的平均值。我们应该关注5分钟或15分钟的平均值,因为短暂的一分钟内负载高于1.0是可以接受的。当15分钟的平均值持续高于1.0时,就需要立即采取行动。
如何知道系统的处理器核心数
可以通过cat /proc/cpuinfo命令来获取系统处理器的信息。要获取核心数,可以使用grep 'model name' /proc/cpuinfo | wc -l命令。
经验值
1. “需要关注一下”的经验法则:0.70
如果系统的负载平均值持续高于0.70,那么就应该开始调查原因,以防止问题进一步恶化。
2. “现在就解决”的经验法则:1.00
如果系统的负载平均值持续高于1.00,那么就应该立即找出问题并解决。否则,可能会导致系统性能下降,甚至在不适当的时间(如深夜或重要会议期间)出现更严重的问题。
3. “非常严重”的经验法则:5.00
如果系统的负载平均值高于5.00,那么系统可能已经处于严重问题状态,可能会出现挂起或极慢的情况。这种情况下,应该立即采取措施来降低负载。
总的来说,当系统负载接近或超过处理器核心数量的1.00倍时,就应该开始关注并采取措施。然而,短暂的负载高峰通常是可以接受的,关键在于负载是否持续维持在较高水平。
测试结果
使用8核虚拟机进行测试,可以看到,系统负载率75%左右时,程序运行时间并没有明显的增长;系统负载率100%左右时,程序运行时间增加到接近2倍;系统负载率200%左右时,程序运行时间增加到3倍;系统负载率500%左右时,程序运行时间增加到6倍。
所以,系统负载是个很重要的指标,当系统本身性能要求不高时,可以考虑更高的阈值。