请教使用dynamic_mapping模式插入纯数字字符串遇到的问题
回复zhuangfy92 发起了问题 • 1 人关注 • 0 个回复 • 2473 次浏览 • 2018-07-04 15:08
ES内存使用分析及熔断器设置
yayg2008 发表了文章 • 0 个评论 • 14545 次浏览 • 2018-07-04 15:08
内存占用
ES的JVM heap按使用场景分为可GC部分和常驻部分。
可GC部分内存会随着GC操作而被回收;
常驻部分不会被GC,通常使用LRU策略来进行淘汰;
内存占用情况如下图:
common space包括了indexing buffer和其他ES运行需要的class。indexing buffer由indices.memory.index_buffer_size参数控制, 默认最大占用10%,当full up后,该部分数据被刷入磁盘对应的Segments中。这部分空间是可以被回收反复利用的。
queryCache 是node级别的filter过滤器结果缓存,大小由indices.queries.cache.size 参数控制,默认10%。使用LRU淘汰策略。
requestCache是shard级别的query result缓存,通常 only requests of size 0 such as aggregations, counts and suggestions will be cached。使用LRU淘汰策略。通过indices.requests.cache.size参数控制,默认1%。设置后整个NODE都生效。
fieldDataCache,针对text字段,没有docValues属性(相当于列存储),当对text类型字段进行sort,agg时,需要将对应的字段内容全部加载到内存,这部分数据就放在fieldDataCache。通过indices.fielddata.cache.size 参数限制大小,默认不限制。这种情况下,占用内存会逐渐增多,直到触发熔断;新数据无法加载。
segmentsMemory ,缓存段信息,包括FST,Dimensional points for numeric range filters,Deleted documents bitset ,Doc values and stored fields codec formats等数据。这部分缓存是必须的,不能进行大小设置,通常跟index息息相关,close index、force merge均会释放部分空间。
可以通过命令
js<br /> GET _cat/nodes?v&h=id,ip,port,r,ramPercent,ramCurrent,heapMax,heapCurrent,fielddataMemory,queryCacheMemory,requestCacheMemory,segmentsMemory<br />
查看当前各块的使用情况。
熔断器
Elasticsearch 有一系列的断路器,它们都能保证内存不会超出限制:
- indices.breaker.fielddata.limit
fielddata 断路器默认设置堆的 60% 作为 fielddata 大小的上限。 - indices.breaker.request.limit
request 断路器估算需要完成其他请求部分的结构大小,例如创建一个聚合桶,默认限制是堆内存的 60%。它实际上是node level的一个统计值,统计的是这个结点上,各类查询聚合操作,需要申请的Bigarray的空间大小总和。 所以如果有一个聚合需要很大的空间,同时在执行的聚合可能也会被break掉。 - indices.breaker.total.limit
父熔断,inflight、request(agg)和fielddata不会使用超过堆内存的 70%。 - network.breaker.inflight
requests.limit 限制当前通过HTTP等进来的请求使用内存不能超过Node内存的指定值。这个内存主要是限制请求内容的长度。 默认100%。 - script.max_compilations_per_minute
- 限制script并发执行数,默认值为15。
参考文档
https://www.elastic.co/guide/e ... eaker
https://www.elastic.co/guide/c ... .html
http://zhengjianglong.leanote. ... %25AE
slow log里面怎么输出index和type? ES 2.4.1
回复God_lockin 发起了问题 • 2 人关注 • 0 个回复 • 2279 次浏览 • 2018-07-04 14:54
es底层lucene保证indexwrite和translog的数据一致性,为什么还要采用2PC机制?
code4j 回复了问题 • 5 人关注 • 3 个回复 • 3741 次浏览 • 2018-07-03 20:58
has_child 查询,如何查询几个字表中,其中一个字段相同结果的父记录
myst 回复了问题 • 3 人关注 • 2 个回复 • 3424 次浏览 • 2018-07-02 22:32
elasticsearch 接收包含转义字符的数据报错,有哪位大牛走过路过帮分析分析
rockybean 回复了问题 • 3 人关注 • 2 个回复 • 3067 次浏览 • 2018-07-02 18:53
同一字段中相同内容,term_vector结果不同,为什么
rockybean 回复了问题 • 2 人关注 • 1 个回复 • 2554 次浏览 • 2018-07-02 18:24
elasticsearch日志报java.nio.file.FileSystemException:...: Structure needs cleaning
回复Ross 发起了问题 • 1 人关注 • 0 个回复 • 3190 次浏览 • 2018-07-02 17:09
客户端写数据是否需要根据分片所在节点批量提交
yayg2008 回复了问题 • 3 人关注 • 1 个回复 • 3765 次浏览 • 2018-07-02 16:58
es小的聚集查询在前端非正常压力后延迟忽然变高
sterne vencel 回复了问题 • 2 人关注 • 2 个回复 • 5798 次浏览 • 2018-07-02 10:30
elasticsearch分析器
laoyang360 回复了问题 • 3 人关注 • 2 个回复 • 2353 次浏览 • 2018-07-02 08:12
es 6.0以上版本,多索引如何关联查询,从建立索引 插入数据 索引查询能说明下么,困扰多时
laoyang360 回复了问题 • 2 人关注 • 1 个回复 • 3164 次浏览 • 2018-07-02 08:06