提问要多花一点心思哦

关于ES索引打开时和打开后对资源占用的疑问

Elasticsearch | 作者 wangxinrong | 发布于2019年11月05日 | 阅读数:1909

1.我目前观察到的有副本的索引在打开时,似乎主分片很快就恢复了,副本分片恢复的很慢。感觉像是主分片直接是在原有数据的节点上加载好,副本是重新生成的一样,按道理ES的主和副本分片都有记录在哪个节点上,两者恢复速度应该相同才对吧?
 
2.另一个问题是索引在打开时,对资源的加载,特别是内存占用这块,想了解下主要消耗在哪边呢,目前我有一些比较大的日志,只要打开之前关闭的日志天数较多,jvm堆内存的占用就上升明显,我需要怎么配置能优化这个打开状态索引对内存的占用呢?
 
已邀请:
匿名用户

匿名用户

赞同来自:

ES本身就是需要大内存的,硬件不够,很难使用。出现各种各样的错误。
 
 
 

ywxk

赞同来自:

我的理解:1. 主分片的恢复是直接在原有数据的节点上恢复的,副本分片恢复会优先选择在有该分片数据的节点上恢复(但是也有可能在别的节点上),使用 _cat/recovery 可以看到该分片的恢复类型 
 
2.打开索引后,该索引的数据会被加载到内存,该索引的segment会占有内存

wangxinrong

赞同来自:

感谢,我现在的疑惑也是主和副本都在对应的服务器上存在,应该副本也优先找存在对应数据的服务器,应该很快才对,_cat/recovery 这个我找时间测试下。
关于打开索引后数据加载到内存的问题,这个可以设置一个阈值,控制下占用的内存量吗,有时打开索引太多了,java内存从50%直接增加到了80-90%,然后再做查询就很容易出现 gc,经常卡住

要回复问题请先登录注册