2012-08-16 108 views
1

我使用Jmeter来加载测试我的Web应用程序。我有两个Web服务器,我们正在使用HAProxy来实现负载平衡。我所有的测试都运行良好,配置正确。我有三个jmeter远程客户端,所以我可以运行分发的测试。我面临的问题是,我的所有jmeter请求都只能由其中一个Web服务器处理。出于某种原因,这不是平衡,我有很多时间和巨大的响应时间。我已经考虑了很多方法来使这些请求保持平衡,但目前我没有运气。有谁知道这种行为的原因是什么?如果您首先需要了解我的环境,请告诉我,我会提供答案。所有Jmeter请求只与一个服务器haproxy

回答

1

检查你HAProxy的配置:什么是它的负载平衡策略,如果没有循环是基于IP源地址或其他一些信息,可能是经常会将3个远程服务器

  • 你确定负载平衡工作正常吗?尝试用浏览器进行测试首先,如果你能在响应添加有关Web服务器的一些信息来调试

检查你的测试计划:

  • 你确定你没有在你的地方请求硬编码的jessionid?

  • 你配置了多少个线程?

+0

我在办公室网络环境。根据代理服务器的IP是办公室的外部IP(因此,我的3个远程服务器的IP相同)。但是,负载均衡在浏览器中正常工作。测试计划没有任何硬编码的cookies。我想知道是否有任何Jmeter配置我必须做?通过循环赛平衡,我可以得到相同的结果。 – 2012-08-16 20:32:29

+0

使用浏览器测试时,您是否从用作远程服务器的相同机器进行测试? haproxy基于ip或基于roundrobin的策略是什么?你如何检查浏览器的测试是否正常?你打开3个浏览器,每个浏览器都去不同的服务器? – 2012-08-16 20:40:54

+0

是的。它现在用循环法进行工作。网络管理员把它设置错了,所以我之前曾提到过用循环法尝试,但我并没有真正这么做。现在我有,它正在工作。非常感谢您的回复! – 2012-08-16 20:43:26

0

默认情况下,您的Jmeter脚本会检查HTTP请求“使用KeepAlive”标头选项。

保持活动是维护 客户端和服务器之间的持续连接,从而防止断裂 间歇的连接的报头。也称为HTTP保持活动状态,可将其定义为 方法,以允许为HTTP通信使用相同的TCP连接,而不是为每个新请求打开新连接的 。

这可能会导致所有请求转到同一台服务器。只需取消选中并保存,停止脚本并重新运行。

相关问题