暂无图片
elasticsearch 里没有什么数据,但请求速度特别慢,可能是什么原因?
我来答
分享
暂无图片 匿名用户
elasticsearch 里没有什么数据,但请求速度特别慢,可能是什么原因?

elasticsearch 里没有什么数据,但请求速度特别慢,可能是什么原因?

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

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

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

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

除了文件系统缓存,Elasticsearch 还使用查询缓存和请求缓存来提高搜索速度。 所有这些缓存都可以使用搜索请求进行优化,以便每次都将某些搜索请求路由到同一组分片,而不是在不同的可用副本之间进行交替。这将更好地利用请求缓存、节点查询缓存和文件系统缓存。Es默认会在内存使用75%时发生FullGC ,做好主机和节点的监控同样重要。

优化方法
1、根据查询时间段动态计算索引
elasticsearch支持同时查询多个索引,为了提高查询效率,避免使用通配符查询,我们可以计算枚举出所有的目标索引,一般es的数据都是按时间分索引,我们可以根据前端传入的时间段,计算出目标索引。

2、控制分片数量
分片的数量和节点和内存有一定的关系。
最理想的分片数量应该依赖于节点的数量。 数量是节点数量的1.5到3倍。
每个节点上可以存储的分片数量,和堆内存成正比。官方推荐:1GB 的内存,分片配置最好不要超过20。

3、为你的索引配置索引模板
在低版本的es中默认的分片是5个,在高版本中改成了1我们需要根据索引的索引量来动态调整分片数量,这里推荐设置一个默认匹配规则,将优先级设置高一些(ps:order高的会覆盖order低的模板),避免查询扫描过多的分片,合理利用集群资源。

参考
http://www.360doc.com/content/21/1224/14/13042814_1010145822.shtml

暂无图片 评论
暂无图片 有用 0
打赏 0
2022-11-19
回答交流
Markdown


请输入正文
提交
相关推荐
Elasticsearch会把配置文件缓存到数据存储的路径里面吗?
回答 1
path.home:运行Elasticsearch进程的用户的主目录。默认为Java系统属性user.dir,它是进程所有者的默认主目录。 path.conf:包含配置文件的目录。这通常通过
ex能联index查询吗?就像MySQL联表那样
回答 2
已采纳
不可以。
配置elasticsearch集群,但是显示出来是各自的节点,如何显示集群的信息?
回答 1
已采纳
类似这样curl127.0.0.1:9200/cat/health?v替换成你自己的。
elasticsearch 单机32核心64G 单节点es 每秒并发能抗住2万一秒的数据插入和更新吗?
回答 1
这个还要评估磁盘的属性,像一般SSD的加你这个配置随便整,20w\s都没问题。当然同时还要考虑其他因素,比如读的请求有多少
有一个elasticsearch 集群部署完9300端口访问不了
回答 1
已采纳
请先telnet一下端口。可以看看127.0。0.1的这个端口。看看来起来没有?如果可以,那么可能是防火墙的问题。
elasticsearch 的查询json有字数限制吗?
回答 1
官方文档https://www.elastic.co/guide/en/elasticsearch/reference/current/indexmodules.html解决方案PUT/account
elasticsearch索引大小最大控制在多少合适?
回答 1
已采纳
没有限制。大小都无所谓。
elasticsearch 配置文件路径 在是哪个文件,在什么路径下?
回答 1
你es(包)/conf/elasticsearch.yml
elasticsearch 5.6不支持bucket_sort有什么好的替代方案吗?
回答 1
用searchafter分页https://blog.csdn.net/Qensq/article/details/99681417
elasticsearch 查询一条数据,可以只显示某个字段的部分内容吗?
回答 1
已采纳
es7以后支持SQL的那样,在命令行支持的。