ELB压测方案
通过ELB您可以进行大规模的业务流量负载,ELB的性能和稳定性将决定业务是否可以正常运行。在使用ELB承接真实业务流量前,可以通过对ELB进行压测提前模拟极端业务场景,确保ELB在真实业务转发中高可用。
压测方案
- TCP/TLS压测指标
压测TCP/TLS监听器转发的业务时,通常有如表1中的3个关键指标可以参考,监控详情请参考弹性负载均衡监控指标说明。
- HTTP/HTTPS压测指标
压测HTTP/HTTPS监听器转发的业务时,通常有如表2中的4个关键指标可以参考,监控详情请参考弹性负载均衡监控指标说明。
- 后端服务器组配置
- 推荐使用“云服务器”作为压测的后端服务器。使用“IP类型后端”的后端服务器存在部分约束,详情请参考配置IP类型后端的约束与限制。
- 不建议流量分配策略使用“源IP算法”和开启会话保持功能,因为该配置下单个客户端的并发连接会集中在1个后端服务器上,造成后端服务器负载压力不均。
压测工具建议
建议您使用华为云性能测试(CodeArts PerfTest)服务进行压测,性能测试服务支持快速模拟大规模并发用户的业务高峰场景,可以支持报文内容和时序自定义、多事务组合的复杂场景测试,测试完成后会为您提供专业的测试报告。
压测示例
本实践以压测HTTP监听器进行举例。
创建后端协议为HTTP的后端服务器组,并将两台ECS添加至后端服务器组中,业务端口均设置为80端口。
创建一个独享型ELB实例(网络型和应用型),添加HTTP监听器并设置转发至的后端服务器组。
两台ECS的基础配置如下表3。
操作步骤
- 分别远程登录两台ECS,参考以下步骤安装HTTP服务。
- 安装Nginx。
yum install -y nginx
- 初始化默认页面。
echo "performance test" > /usr/share/nginx/html/index.html
- Nginx默认监听TCP 80端口,您可以根据压测需要修改/etc/nginx/nginx.conf来监听更多端口。
- 启动HTTP服务。
systemctl start nginx
- 执行以下任一条命令,确认访问HTTP服务正常(默认为80端口)。
curl -X GET http://localhost 或者 curl -X GET http://127.0.0.1:80
- 安装Nginx。
- 在CodeArts服务中进行流量压测,具体操作请参考性能测试使用流程。
压测性能不佳常见问题
- 后端服务器存在CPU性能瓶颈
后端服务器的CPU性能存在瓶颈,会导致压测性能较低。
解决方案:排查压测过程中所有后端服务器的CPU使用率,提高后端服务器的性能规格。
- 部署业务依赖的应用存在性能瓶颈
客户端请求经过负载均衡转发到后端服务器后,由于后端服务器的业务应用可能会依赖其他服务(例如,数据库、DNS等),而这些服务存的性能瓶颈也会导致压测性能低。
解决方案:排查后端服务器部署的整个业务流程并消除每个环节的瓶颈点。
- 端口不足
客户端或者服务端端口资源不足可能会导致无法压测到较高的并发连接。
解决方案:排查以下可能原因并采取对应的建议措施: