暂无图片
为什么elasticsearch集群查询没有单机查询快?
我来答
分享
暂无图片 匿名用户
为什么elasticsearch集群查询没有单机查询快?

为什么elasticsearch集群查询没有单机查询快?

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
shunwahⓂ️

ES集群慢,有时候es查询比较慢,此时在确认集群健康,green,indices数据green,集群负载正常后,可以打开该功能排查es查询慢的问题。

elasticsearch提供了非常灵活的搜索条件给我们使用,在使用复杂表达式的同时,如果使用不当,可能也会为我们带来了潜在的风险,因为影响查询性能的因素很多很多。

1.1 查询服务超时
最直观的现象就是提供查询的服务响应超时。

我们有时候写查询,为了图方遍,经常使用通配符*来查询,这有可能会匹配到多个索引,由于索引下分片太多,超过了集群中的核心数。就会在搜索线程池中造成排队任务,从而导致搜索拒绝。

1.2 查询延迟
主机CPU飙高

另一个常见原因是磁盘 I/O 速度慢,导致搜索排队或在某些情况下 CPU 完全饱和。

单机情况下:我根据条件查询出来2条数据,响应是20ms,如果我再次使用当前条件查询,响应一直在2–4ms之间,也就是说命中了缓存导致的结果,那么我直接使用请求往里面写入一条数据,符合当前查询条件的,查询之后,依然是2–4ms之间,同时把我新写入的数据也给查出来了,同理,我删除数据也是,命中缓存,且数据实时更新。

集群情况下:第一次查询速度在400ms,第二次查询速度在400ms,第三次查询速度在50ms,第四次也是50ms。猜测结论是,第三次和第四次命中了缓存,但是因为两次才命中缓存,猜测是不是第一次查询把查询结果落在了第一个机器上,数据缓存在第一个机器上;第二次查询把查询结果落在了第二个机器上,那么缓存也在第二个机器上。

所以才会出现,集群效果比单机效果差。

暂无图片 评论
暂无图片 有用 0
暂无图片
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏