使用jmeter工具在AWS中进行的性能测试在持续45-60分钟的持续时间后返回403错误

时间:2013-10-09 12:24:49

标签: performance amazon-web-services memcached jmeter libmemcache

我正在使用jmeter工具在AWS环境中运行性能测试。我们有一个启用了自动扩展的集群,并具有memcache会话故障转移jar。我们正在使用jmeter master slave,因此我们无法从JTL文件中获取响应数据。在45分钟的测试持续时间后返回响应代码:

回复代码:403 回复信息:禁止

如何解决问题?

在研究了更多后,我发现原因可能是memcache的会话故障转移jar我将jar版本升级到1.6.5但仍面临同样的问题。

2 个答案:

答案 0 :(得分:1)

你在使用ELB吗?如果是,请在此处阅读:http://community.blazemeter.com/knowledgebase/articles/94060-testing-amazon-elbs

答案 1 :(得分:1)

看起来你正在使用ELB。 ELB附加了CNAME。 AWS会更改附加到CNAME的IP。这经常发生。

当您的测试开始时,JMeter会对ELB CNAME执行DNS查找。然后缓存响应。从此时起,测试会将流量发送到现在缓存的响应中的IP地址。

结果是,在某些时候(在IP更改之后),您正在测试现在可以属于不同服务器或属于NO服务器的旧IP。这可能就是你获得403的原因。

要解决此问题,您需要将Cache TTL设置为0(零)。这将指示JMeter不缓存DNS查找响应并始终再次执行(这在任何情况下都更加真实)。您应该将以下内容添加到JMeter行:-Dsun.net.inetaddr.ttl = 0.

此处有更多信息:http://community.blazemeter.com/knowledgebase/articles/94060-testing-amazon-elbs