我在调整 Elasticsearch 以提供高搜索查询性能时遇到了很多问题。这些是我的规格:
ES 设置:版本:0.90.0,集群中有 2 个节点(m3.2xlarge aws 实例),每个 32GB RAM,50% 分配给 ES_HEAP_SIZE,无交换
数据:75MM文档,每个25个字段
针对基准的查询:针对 5 个文本字段的多匹配查询
高达 30 个请求/秒的输入查询频率,响应时间保持小于 1 秒。超过 30 多个请求/秒,性能下降,响应时间增加到 50 秒。虽然发生这种情况,但 JVM 堆是稳定的(在 bigdesk 中约为 7-8),并且 GC 也很稳定。但是,CPU 迅速增加,达到 800%(8 核),平均负载非常高 16。热线程不断在搜索和评分函数之间切换,如 BooleanScorer2.nextDoc、BooleanQuery.createWeight、DisjunctionSumScorer.advance、BufferedIndexInput.refill等等
问题:您能否帮我找出为什么在 30 次请求/秒后性能会下降,以及如何通过更改集群配置来解决这个问题。
提前致谢!