平均负载(load average)

  一、平均负载基本概念

        平均负载是指单位时间内,系统处于R状态与D状态的平均进程数,与cpu使用率无关,进程状态可使用ps -aux查看。

        平均负载理想状态下等于cpu个数,cpu个数可通过cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l 查看,例如在2个cpu的机器上,平均负载为1,那么cpu有50%的空闲,当平均负载大于cpu个数时,表示系统出现过载,过载超过cpu数量70%时,需要排查负载过高问题。

         top命令中load average三个参数分别代表过去 1 分钟、5 分钟、15 分钟的平均负载。如果三个参数值差距不大,表示系统负载平稳,当1分钟的值比5分钟或15分钟的值小很多,表示最近1分钟负载减少,反之表示最近1分钟负载增加        

二、平均负载案例

1.cpu密集型

        可通过stress工具使用stress --cpu 1 --timeout 300命令模拟cpu使用率100%场景,top或pidstat -u 2 10查看平均负载及cpu占用情况。

2.io密集型

        stress -i 1 --timeout 300 模拟io密集型进程,top查看平均负载,io使用率需通过mpstat -P ALL 5 10(5秒统计一次,统计10次)查看。

当iowait较高时使用pidstat -d 2 10找到对应进程。

3.大量进程

stress -c 8 --timeout 600模拟8个进程,top或pidstat -u 2 10查看平均负载以及进程占用情况。

三、总结

        当服务器响应缓慢时可先通过top或pidstat -u 2 10查看cpu以及平均负载情况,对于cpu占用不高,但平均负载较高情况,考虑是否io密集型应用导致,可通过mpstat -P ALL 5 10查看io使用率,也可通过pidstat -d 2 10直接找到对应进程。

-bash: mpstat: command not found 可通过 yum -y install sysstat安装

stress使用:https://blog.csdn.net/shaofei_huai/article/details/118528252

 

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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、付费专栏及课程。

余额充值