我在Azure Web服务上使用JMeter运行负载测试。 我使用4个实例在S2上扩展我的服务,并运行带有500个线程的JMeter 4实例。Azure上的负载测试
它开始非常好,但过了一段时间后调用开始失败,并给予超时错误(HTTP状态:500)。
我已经检查了azure上的HTTP请求队列,发现它在第二个实例中非常高,两个实例非常低低。
请帮我成功我的负载测试。
我在Azure Web服务上使用JMeter运行负载测试。 我使用4个实例在S2上扩展我的服务,并运行带有500个线程的JMeter 4实例。Azure上的负载测试
它开始非常好,但过了一段时间后调用开始失败,并给予超时错误(HTTP状态:500)。
我已经检查了azure上的HTTP请求队列,发现它在第二个实例中非常高,两个实例非常低低。
请帮我成功我的负载测试。
我假设您正在使用Azure应用服务。如果您检查应用程序的设置,您会注意到ARR的实例相关性将默认启用。一个简单的解释:
ARR聪明地跟踪连接用户,给他们一个特殊的cookie(称为亲和cookie),它允许它在随后的请求中知道他们正在与哪个服务器实例通话。这样,我们可以确定,一旦客户端与特定服务器实例建立会话,只要他的会话处于活动状态,它就会继续与同一服务器通话。
这是会话敏感的应用的一个重要特征,但如果不是你的话,那么你可以放心地将其禁用,以提高您的实例之间的负载均衡,避免像你所描述的情况下一个。
Disabling ARR’s Instance Affinity in Windows Azure Web Sites
这可能是由于在JVM的网络名称解析或OS水平,使所有的请求都命中率只有一台服务器的缓存。如果是这种情况 - 将DNS Cache Manager添加到您的测试计划,它应该可以解决您的问题。
请参阅The DNS Cache Manager: The Right Way To Test Load Balanced Apps文章以获得更详细的说明和配置说明。