【问题标题】:Elastic Search Load Testing弹性搜索负载测试
【发布时间】:2014-08-05 13:04:56
【问题描述】:

我有一个在 ec2 上运行的单节点弹性搜索服务器。我想使用带有随机搜索查询的搜索请求进行一些负载测试。我正在使用 JMeter 通过两种不同的方法进行负载测试 -

  1. HTTP 客户端 - 当我使用这些客户端进行 10k/20k/50k 请求测试时,它工作正常。
  2. ES 传输客户端 - 这适用于大约 2k 的请求。

这是我遵循的步骤 -

  1. 在每次运行时实例化客户端并在测试完成后关闭它。
  2. 客户端实例化后,我将启动 jmeter 采样并发送搜索请求。
  3. 运行后,停止采样。

在传输客户端发出 2k 次请求后,我收到 No Node Available Exception

ES 服务器正在运行 3g 内存,并已为负载测试器提供 6g 内存。

如果需要一些配置修改并且我没有使用正确的方法来测试负载,请帮助我。

提前致谢。

【问题讨论】:

  • 你能显示异常的完整轨迹吗?
  • 那么,Es传输客户端是指Java吗?你确定这是es错误(不是java)。 ?也许java堆内存低..

标签: elasticsearch


【解决方案1】:

您从 http 测试中得到了什么样的响应?您是否已确认您收到了所有 10~50k 个请求的有效响应?可能是您的集群无法承担您为任一测试施加的负载。由于 TransportClient 更紧密地与 ES 服务器耦合,您将明确看到从 TransportClient 返回的错误,但如果您只是通过 HTTP 发送请求而不验证响应,则很容易错过任何问题。

虽然,在像我刚才那样在黑暗中刺伤之前,我还会检查一下您使用 HTTP 方法和 TC 方法获得了什么样的 QPS,在这两个测试中您的 CPU/内存是什么样的,响应时间是什么样的等。它有助于在整个过程中监控系统的运行状况,以检测可能有助于解释原因的任何症状。

【讨论】:

    猜你喜欢
    • 2015-12-29
    • 2018-03-19
    • 2012-02-03
    • 1970-01-01
    • 2012-06-06
    • 1970-01-01
    • 2021-11-23
    • 2010-11-14
    • 2018-10-26
    相关资源
    最近更新 更多