我正在使用 jmeter 工具在 AWS 环境中运行性能测试。我们有一个启用了 Auto Scaling 并具有 memcache 会话故障转移 jar 的集群。我们使用的是 jmeter 主从,所以我们没有从 JTL 文件中获取响应数据。测试持续 45 分钟后返回的响应代码:
响应代码:403 响应消息:禁止
如何解决问题?
经过更多研究后,我发现原因可能是 memcache 的会话故障转移 jar,我已将 jar 版本升级到 1.6.5,但仍然面临同样的问题。
我正在使用 jmeter 工具在 AWS 环境中运行性能测试。我们有一个启用了 Auto Scaling 并具有 memcache 会话故障转移 jar 的集群。我们使用的是 jmeter 主从,所以我们没有从 JTL 文件中获取响应数据。测试持续 45 分钟后返回的响应代码:
响应代码:403 响应消息:禁止
如何解决问题?
经过更多研究后,我发现原因可能是 memcache 的会话故障转移 jar,我已将 jar 版本升级到 1.6.5,但仍然面临同样的问题。
你用的是ELB吗?如果是这样,请在此处阅读:http: //community.blazemeter.com/knowledgebase/articles/94060-testing-amazon-elbs
看起来您正在使用 ELB。ELB 附加了一个 CNAME。AWS 更改附加到 CNAME 的 IP。这种情况经常发生。
当您的测试开始时,JMeter 会为 ELB CNAME 进行 DNS 查找。然后缓存响应。从此时开始,测试将流量发送到现在缓存的响应中的 IP 地址。
结果是,在某个时间点(IP 更改后),您正在测试一个现在可以属于不同服务器或不属于任何服务器的旧 IP。这可能就是您获得 403 的原因。
要解决此问题,您需要将缓存 TTL 设置为 0(零)。这将指示 JMeter 不缓存 DNS 查找响应并始终再次执行(这在任何情况下都更现实)。您应该将以下内容添加到您的 JMeter 行:-Dsun.net.inetaddr.ttl=0。
更多信息在这里:http: //community.blazemeter.com/knowledgebase/articles/94060-testing-amazon-elbs