在带宽有限的情况下,跑压测能压出并发。服务器出带宽是有限的,压测触及带宽上限跟算力并无直接关系,本文仅仅涉及算力层面的并发探讨,不涉及带宽层面。
负载均衡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)会导致这种情况。