系统负载LoadAverage

一、什么是Load Average?


系统负载(System Load)是系统CPU繁忙程度的度量,即有多少进程在等待被CPU调度(进程等待队列的长度)。
平均负载(Load Average)是一段时间内系统的平均负载,这个一段时间一般取1分钟、5分钟、15分钟。

二、如何查看Load?


top,uptime,w等命令都可以查看系统负载:

$ uptime
18:13:13 up 1 day,  6:56,  1 user,  load average: 2.77, 1.82, 1.47

如上所示,dev02机器1分钟平均负载,5分钟平均负载,15分钟平均负载分别是1.5、2.5、5.5

三、Load的数值是什么含义?


CPU比喻成一条(单核)马路进程任务比喻成马路上跑着的汽车Load则表示马路的繁忙程度

Load小于1:不堵车,汽车在马路上跑得游刃有余:

Load小于1

[Load<1,单核]

Load等于1:马路已无额外的资源跑更多的汽车了:

Load等于1

[Load==1,单核]

Load大于1:汽车都堵着等待进入马路:

Load大于1

[Load>1,单核]

如果有两个CPU,则表示有两条马路,此时即使Load大于1也不代表有汽车在等待:

两个CPU

[Load==2,双核,没有等待]

四、什么样的Load值得警惕(单核)?


Load < 0.7时:系统很闲,马路上没什么车,要考虑多部署一些服务

0.7 < Load < 1时:系统状态不错,马路可以轻松应对

Load == 1时:系统马上要处理不多来了,赶紧找一下原因

Load > 5时:马路已经非常繁忙了,进入马路的每辆汽车都要无法很快的运行

五、不同Load值说明什么问题?


结合具体情况具体分析:

1)1分钟Load>5,5分钟Load<1,15分钟Load<1:短期内繁忙,中长期空闲,初步判断是一个**“抖动”或者是“拥塞前兆”**

2)1分钟Load>5,5分钟Load>1,15分钟Load<1:短期内繁忙,中期内紧张,很可能是一个**“拥塞的开始”**

3)1分钟Load>5,5分钟Load>5,15分钟Load>5:短中长期都繁忙,系统**“正在拥塞”**

4)1分钟Load<1,5分钟Load>1,15分钟Load>5:短期内空闲,中长期繁忙,不用紧张,系统**“拥塞正在好转”**

六、Load总结


[Load<1,单核]
Load小于1

[Load==1,单核]
Load等于1

[Load>1,单核]
Load大于1

[Load==2,双核]
两个CPU

Load average负载均衡)是一个表示系统负荷的指标,它通常用于衡量系统的繁忙程度。在Linux系统中,load average通常指的是系统在特定时间间隔内的平均进程数,其值是一个三元组,分别表示1分钟、5分钟和15分钟内的平均值。例如,一个系统load average为 0.50,1.00,2.00,表示在过去1分钟、5分钟和15分钟内,系统的平均进程数分别为0.50,1.00和2.00。 在Linux系统中,可以使用uptime命令或者/proc/loadavg文件来获取load average值。以下是一个使用C语言获取load average值的示例代码: ```c #include <stdio.h> #include <stdlib.h> void get_load_avg(double *load_avg_1, double *load_avg_5, double *load_avg_15) { FILE *fp; double la1, la5, la15; // 打开/proc/loadavg文件并读取load average值 fp = fopen("/proc/loadavg", "r"); if (fp == NULL) { printf("Error: failed to open /proc/loadavg file.\n"); exit(1); } fscanf(fp, "%lf %lf %lf", &la1, &la5, &la15); fclose(fp); // 将load average值保存到传入的指针变量中 *load_avg_1 = la1; *load_avg_5 = la5; *load_avg_15 = la15; } int main() { double load_avg_1, load_avg_5, load_avg_15; // 获取load average值 get_load_avg(&load_avg_1, &load_avg_5, &load_avg_15); printf("Load average: %.2lf, %.2lf, %.2lf\n", load_avg_1, load_avg_5, load_avg_15); return 0; } ``` 该函数打开/proc/loadavg文件并读取其中的load average值,然后将这些值保存到传入的指针变量中。最后在主函数中输出load average值即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值