我正在使用jmeter工具在AWS环境中运行性能测试。我们有一个启用了自动扩展的集群,并具有memcache会话故障转移jar。我们正在使用jmeter master slave,因此我们无法从JTL文件中获取响应数据。在45分钟的测试持续时间后返回响应代码:
回复代码:403 回复信息:禁止
如何解决问题?
在研究了更多后,我发现原因可能是memcache的会话故障转移jar我将jar版本升级到1.6.5但仍面临同样的问题。
答案 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