微信小程序服务器压力测试,微信小程序性能测试之jmeter踩坑记录(四)

-----------------------------------------------------------------------------------------------------------------------------------------------------------------

go单机压力测试

压测go单机时,采用了2台同规格的8核16G服务器作为发起压力的A机,A机使用Jmeter工具发起压力请求。1台同规格的8核16G服务器作为接受压力的B机。

此外,由于登录接口会使用用户code来调用腾讯的openid接口,但是目前只有几个用户code,因此无法模拟不同的用户海量登录,故此次测试采用了1台同规格的8核16G服务器作为C机来模拟腾讯openid接口以供B机的调用。测试时,B机随机生成不同的用户code发送给C机,C机再据此返回不同的openid给B机。

go单机压力测试结果

当B机达到满负载(CPU 90%~100%)时,2台A机的压力测试结果如下

A机一:

9e92f6f15c624b28cb695078118ee01a.png

A机二:

cf201dfe3bf72630e15a426affecc51c.png

由上图可知,go登录接口的最大并发数为11000RPS左右。

go单机压力测试结果分析

go登录接口最大并发数为11000RPS,但由于此次是采用模拟腾讯接口的方式,延时会比实际低一些,若实际采用腾讯接口,换算后并发数约为9000RPS左右。所以,当服务器在正常符合范围内(CPU <= 70%)运转时,go登录单机并发数应为9000*70%=6300PRS左右。而目标登录并发数为500000RPS,故共需要500000/6300=79.36台8核ecs服务器即可达到登录的需求。

压力测试结论与建议

结论1:满足当前每秒50万登录并发+每秒1.5万订单,至少需要512G以上Redis缓存和60核MySql数据库。

结论2:当前php单机性能为最大每秒处理2000请求数。

结论3:系统满足横向线性扩展。

建议1:如不能修改应用情况下,应至少使用250台8C16G ECS+1T版Reids+60核RDS,建议400台8C32G ECS。

建议2:修改应用,提升单机性能,如单机性能提升10倍至20000,则最少只需25台ECS。

建议3:由于php本身并不适合高并发场景,可以考虑使用其它高并发框架,如Golang的echo框架等。

标签:登录,单机,微信,接口,并发,测试,go,jmeter

来源: https://www.cnblogs.com/qgc1995/p/14111165.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值