Nginx 实现负载均衡,使用Jmeter进行测试

1.准备工作。

结合本文场景,需要安装Nginx和Java环境(运行SpringBoot项目)。

1.1 关于Linux系统安装Nginx可以参考我的文章

1.2 由于只是测试,SpringBoot只是映射了根路径,端口分别是10001和10002,分别返回demo1和demo2字符串作为区分。

2.Nginx负载均衡的集中方式介绍

2.1 轮询

轮询方式是Nginx负载默认的方式,顾名思义,所有请求都按照时间顺序分配到不同的服务上,如果服务Down掉,可以自动剔除,如下配置后轮询7071、7072、888三个服务

upstream mukeUpServerUp {
	server 127.0.0.1:7071;
	server 127.0.0.1:8888;
	server 127.0.0.1:7072;
	}

2.2权重

指定每个服务的权重比例,weight和访问比率成正比,通常用于后端服务机器性能不统一,将性能好的分配权重高来发挥服务器最大性能,如下配置后7071、8888服务的访问比率会是7072服务的二倍。

upstream mukeUpServerUp {
	server 127.0.0.1:7071 weight=2;
	server 127.0.0.1:8888 weight=2;
	server 127.0.0.1:7072 weight=1;
	}

2.3 iphash

每个请求都根据访问ip的hash结果分配,经过这样的处理,每个访客固定访问一个后端服务,如下配置(ip_hash可以和weight配合使用)。

upstream mukeUpServerUp {
 	ip_hash;
	server 127.0.0.1:7071 weight=2;
	server 127.0.0.1:8888 weight=2;
	server 127.0.0.1:7072 weight=1;
	}

2.4 最少连接

将请求分配到连接数最少的服务上。

upstream mukeUpServerUp {
 	least_conn;
	server 127.0.0.1:7071 weight=2;
	server 127.0.0.1:8888 weight=2;
	server 127.0.0.1:7072 weight=1;
	}

2.5 fair

upstream mukeUpServerUp {
	server 127.0.0.1:7071 weight=2;
	server 127.0.0.1:8888 weight=2;
	server 127.0.0.1:7072 weight=1;
	fair;  
	}

3.Nginx配置

代理配置

location /v2/muke/ {
	proxy_set_header Upgrade $http_upgrade;
	proxy_set_header Connection "upgrade";
	proxy_connect_timeout   300000;
	proxy_send_timeout      600000;
	proxy_read_timeout      600000;
	proxy_pass http://mukeUpServerUp/v2/muke/;
	}

负载配置

upstream mukeUpServerUp {
    least_conn;
    server 127.0.0.1:7071 weight=2;
    server 127.0.0.1:8888 weight=2;
    server 127.0.0.1:7072 weight=1;
    }

测试

查看一下进程在这里插入图片描述

top -p 2228,2291,2344

查看静止进程情况在这里插入图片描述
使用Apache Jmeter 进行测试下
在这里插入图片描述
1000线程,循环三次
在这里插入图片描述
处于nginx访问监听
在这里插入图片描述
三个进程都有使用,说明配置成功了。
在这里插入图片描述
看一下接口最终的接口使用情况,由于本地代理的问题,错误率比较高。正常情况下是不会的

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
对于Nginx负载均衡的性能测试和瓶颈分析,可以采取以下步骤: 1. 安装和配置Nginx:确保Nginx已正确安装和配置,并且负载均衡功能已启用。 2. 准备测试环境:搭建一个包含多个服务器的测试环境,这些服务器将作为后端服务。 3. 压力测试工具选择:选择一个合适的压力测试工具,例如ApacheBench、JMeter或wrk等。 4. 制定测试计划:确定测试目标、并发用户数量、请求频率、请求类型等测试参数。 5. 进行负载测试使用选择的压力测试工具对Nginx进行负载测试,模拟实际用户访问场景,记录每个请求的响应时间和吞吐量。 6. 监控和调优:通过监控Nginx服务器的CPU、内存、网络等性能指标,找出可能存在的瓶颈。可以使用工具如top、vmstat等进行系统监控,或者Nginx提供的统计模块ngx_http_stub_status。 7. 调整配置参数:根据监控数据,调整Nginx的配置参数,如worker_processes、worker_connections、keepalive_timeout等,以提高性能并消除瓶颈。 8. 重复测试和分析:重复上述步骤,直到达到预期的性能要求。同时,分析测试结果,确定性能瓶颈所在,并采取相应措施进行优化。 需要注意的是,负载均衡性能测试是一个复杂的过程,需要综合考虑多个因素,如硬件性能、网络延迟、后端服务性能等。在进行测试和分析时,应该综合考虑这些因素,并根据实际情况进行调整和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值