如果webserver云服务器配置低、并发差,挂在负载均衡后面能有效降低并发失败率

2023-04-14 11:00:03 浏览数 (1)

在带宽有限的情况下,跑压测能压出并发。服务器出带宽是有限的,压测触及带宽上限跟算力并无直接关系,本文仅仅涉及算力层面的并发探讨,不涉及带宽层面。

负载均衡nws(nginx web server)应该是有proxy_request_buffering on这个配置的,适应上游服务并发处理能力低,适应高吞吐场景

比如我用同一个webserver 镜像买了2台2c4g的机器,1台是独立的webserver,另1台挂在负载均衡后面

然后我用ab压测,发现负载均衡的那台100%成功,而独立的那台则有明显的失败率

此经验很关键,对于单台webserver的小网站来说,挂在负载均衡后面更好一些

  • on 表示缓存客户端请求体:CLB 会缓存请求,全部接收完成后再分块转发给后端 CVM。
  • off 表示不缓存客户端请求体:CLB 收到请求后,立即转发给后端 CVM,此时会导致后端 CVM 有一定性能压力。

【CVM】

ab -c100 -n1000 "http://1.shawyang.cn/forum.php?mod=viewthread&tid=1"

ab -c100 -n2000 "http://1.shawyang.cn/forum.php?mod=viewthread&tid=1"

ab -c10 -n100 "http://1.shawyang.cn/forum.php?mod=viewthread&tid=1"

ab -c10 -n200 "http://1.shawyang.cn/forum.php?mod=viewthread&tid=1"

ab -c10 -n400 "http://1.shawyang.cn/forum.php?mod=viewthread&tid=1"

ab -c10 -n800 "http://1.shawyang.cn/forum.php?mod=viewthread&tid=1"

【CLB】

ab -c100 -n1000 "http://2.shawyang.cn/forum.php?mod=viewthread&tid=1"

ab -c100 -n2000 "http://2.shawyang.cn/forum.php?mod=viewthread&tid=1"

ab -c10 -n100 "http://2.shawyang.cn/forum.php?mod=viewthread&tid=1"

ab -c10 -n200 "http://2.shawyang.cn/forum.php?mod=viewthread&tid=1"

ab -c10 -n400 "http://2.shawyang.cn/forum.php?mod=viewthread&tid=1"

ab -c10 -n800 "http://2.shawyang.cn/forum.php?mod=viewthread&tid=1"

以上所说有录屏为证:https://cloud.tencent.com/developer/video/75083

另外,我还把这2个站点配了https接到了waf验证了一番

发现还是挂在clb的那个更快、更健壮,

并且接waf对改善访问质量也有好处:之前直接A记录到到CVM的那种,ab -c100 -n2000 "http://1.shawyang.cn/forum.php?mod=viewthread&tid=1" 没到最后就失败了,现在能完全执行到最后,并且2000次中能成功1990多次。

日志要记录真实客户端IP的话,参考

https://cloud.tencent.com/document/product/627/42441

https://cloud.tencent.com/document/product/214/3728

不管有没有代理,这样选就对了

ab压测2000次,鼠标手动访问1次

ab -c100 -n2000 "https://1.shawyang.cn/forum.php?mod=viewthread&tid=1"

ab -c100 -n2000 "https://2.shawyang.cn/forum.php?mod=viewthread&tid=1"

过程中出现个小插曲,https访问时,页面显示异常,乱了

经研究,是waf回源方式选了http回源没选https回源(1.shawyang.cn)或clb只配了http没配https(2.shawyang.cn)会导致这种情况。

0 人点赞