我目前正在对一个Azure核心应用程序进行压力测试,目标是netcoreapp2.2,它作为一个应用程序服务托管在.Net上,它连接到一个有2个实例的P1V2 (210ACU,3.5 am内存)服务计划。
我正在进行压力测试的端点非常简单,它验证一个Oauth2.0令牌,从一个P2 (250DTU)的Azure托管数据库中获取用户和用户的一些信息,每个请求总共有4个数据库查询,并返回字符串"Pong“。
当在200个循环中运行15个并发用户(或更多)时,我在图像中看到了处理过程中的停止(在峰值之间)。服务计划的CPU使用率不会超过20-35%,数据库的负载也不会超过2%。增加用户数会降低平均吞吐量。
当查看缓慢的请求时,它就像是随机地停止,而不是在同一位置。当我查看数据库请求时,我从来没有看到过超过几个100毫秒的请求,而有些请求可能需要5-6秒才能处理。
感觉就像我达到了一些限制,导致一些东西在一段时间内停止,但我不知道问题出在哪里。
当在局部运行相同的压力时,我看不到这些停止。
我使用jmeter cli对这两种环境运行压力测试。
非常感谢您的帮助,谢谢!

发布于 2019-03-10 19:21:29
这可能是因为Azure DDOS保护行为。
如果你的应用程序受到DDOS攻击,微软将停止所有到你端点的连接,实际上就是关闭你的服务。
为了避免这种情况,您需要设置Web应用程序防火墙(WAF)来排除健康的请求。
https://stackoverflow.com/questions/54956650
复制相似问题