ES7.X 查询性能低

问题场景:从ES2.X升级到ES7.X后,发现每个索引的前几次查询都比较耗时,在600ms左右,在连续查询多次后,耗时稳定在10ms左右。

原因:ES7.X版本开始,引入“搜索空闲(search idle)”的概念

 

未配置显式 index.refresh_interval 的索引的分片在分片变为“搜索空闲”后将不再在后台刷新(refresh),即分片没有看到任何 index.search.idle.after 秒后的搜索流量(默认为 30 秒)。访问搜索空闲分片的搜索将被“停放”,直到下一次刷新发生。

所以当一个分片长时间未接收到搜索请求,在下一次查询请求执行前,会进行一次刷新操作,导致查询耗时,但一旦分片处于活跃状态,查询请求不会触发刷新,查询耗时就是正常的。

解决办法:显式配置refresh间隔,避免搜索空闲状态下的索引在接收到搜索请求时进行refresh。

PUT /index/_settings
{
    "index.refresh_interval": "1s"
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值