使用Gatling进行负载测试时的TLS握手超时

时间:2017-11-23 02:57:40

标签: amazon-web-services ssl kubernetes gatling

我目前正在AWS中使用Gatling加载测试我的服务。我使用HTTP做了几次负载测试,我的服务工作得很好。没有TLS握手错误。当我们转移到HTTPS时,负载测试结果显示 TLS握手超时异常,并最终抛出OOM,因为未处理的请求已排队。

其他信息:

  • Gatling场景将是这样的: 发送三个请求并使用connection: close标头发送一个请求。我想模拟发送三个保持活动的请求并在结束时关闭它。
  • 我的服务由Kubernetes管理。

我做了什么:

  • 我在其他Gatling实例上运行了负载测试,但错误仍然存​​在
  • 重新启动AWS负载均衡器。附加说明:没有4xx和5xx错误,但我们有客户端TLS协商错误。

我的问题:

  1. 是否因为HTTPS所需的初始握手而发生错误?
  2. 是否因AWS负载均衡器而发生错误?
  3. 谢谢。

2 个答案:

答案 0 :(得分:1)

所以看起来这个问题是因为Gatling握手的时间比每秒创建用户的时间长。通过减少创建的用户数量并增加RPS解决的数量。

答案 1 :(得分:0)

您需要向客户端添加SSL调试标志 - 它将显示错误的性质。 TLS握手超时通常是由于密码/协议不匹配造成的。

找出Gatling服务器正在使用的特定TLS协议和密码集,并确保您的ELB HTTPS侦听器使用正确的密码和协议

来自SSL Negotiation Configurations for Classic Load Balancers

  

Elastic Load Balancing使用安全套接字层(SSL)协商   配置,称为安全策略,用于协商SSL   客户端和负载均衡器之间的连接。安全政策   是SSL协议,SSL密码和服务器订单的组合   偏好选项。有关配置SSL的详细信息   负载均衡器的连接,请参阅经典负载的监听器   平衡器。

尝试在那里允许所有密码/协议。