在Azure上加载测试

时间:2016-07-15 12:21:16

标签: azure jmeter load-testing azure-cloud-services

我在Azure网络服务上使用JMeter运行负载测试。 我使用4个实例在S2上扩展我的服务,并运行JMeter 4实例,每个实例有500个线程。

它开始很好但是一段时间后调用开始失败并给出Timeout错误(HTTP状态:500)。

我已经检查了azure上的HTTP请求队列,发现在第二个实例上它非常高,两个实例非常

请帮助我成功完成负载测试。

2 个答案:

答案 0 :(得分:1)

我假设您使用的是Azure App Service。如果您检查应用程序的设置,您会注意到默认情况下将启用ARR的实例关联。简要说明:

  

ARR巧妙地通过为用户提供一个特殊的cookie(称为亲和力cookie)来跟踪连接用户,这允许它在后续请求时知道他们正在与哪个服务器实例进行通信。这样,我们可以确定一旦客户端与特定服务器实例建立会话,只要他的会话处于活动状态,它就会继续与同一服务器通信。

这是会话敏感应用程序的一项重要功能,但如果不是您的情况,那么您可以安全地禁用它以改善实例之间的负载平衡,并避免出现您所描述的情况。

Disabling ARR’s Instance Affinity in Windows Azure Web Sites

答案 1 :(得分:0)

这可能是由于在JVM或操作系统级别上缓存了网络名称解析,因此您的所有请求都只能访问一台服务器。如果是这种情况 - 请将DNS Cache Manager添加到您的测试计划中,它应该可以解决您的问题。

有关更详细的说明和配置说明,请参阅The DNS Cache Manager: The Right Way To Test Load Balanced Apps文章。