我们在做Linux负载计算的时候,我们需要了解负载的几个概念
1)Linux负载是什么
2)Linux负载怎么计算
3)如何区分目前负载是“好”还是“坏”
4)什么时候应该注意哪些不正常的值
1)Linux负载是什么
我们怎么来理解Linux的负载呢? 打个比方
一核CPU对应我们一条公路,一个进程对应一辆汽车。
在一条公路上,只有一辆汽车行驶,load=1没有出现拥堵的情况
如果有两量汽车行驶在一条公路上行驶,会出现拥堵的情况,需要排队,这是load=2
如果我们CPU是这种情况:
cpu核数=12,当系统load=12时,系统cpu刚刚好在该机器cpu能处理的范围内
当load>12时,机器就超出负荷了,会有任务出现等待的情况。
2)Linux负载怎么计算
load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值,然后用这个值和当前机器的cpu核数进行相除,得到的值
load= process/total_cpu_cores
3)如何区分目前负载是“好”还是“坏”
负载的好和坏:
需要根据机器当前的进程数与CPU总核数的比值(process_cores_values)和CPU总核数(total_cores)来比较
当 process_cores_values <= total_cores 时,机器负载在CPU合理承受范围内
当 process_cores_values > total_cores 时,机器负载超过CPU承受范围,机器超负荷运行。
4)什么时候应该注意哪些不正常的值
在我们执行top或者uptime的时候会有3个load的值,那我们根据哪个值做为我们判断依据呢?
我觉得我们还是着眼5分钟和15分钟的load值比较合适,因为1分钟的值有可能是个瞬间值,而5分钟或者15分钟的值是平均值,长时间负载高,机器肯定是需要排查问题的。