中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

23、Elasticsearch-fielddata內(nei)存使用陡增解決方案

利用searchAfter分頁方式代替From-Size查詢或Scroll滾動查詢,解決From-Size查詢存在的深度翻頁問題與Scroll滾動查詢存在數據量大響應慢的問題。由于searchAfter分頁需要保證排序聚合唯一,當使用_id 字段進行排序聚合時,可能會導致fielddata內存使用指標陡增,從而導致集群的內存使用率上升,一旦內存使用率超過90%即會對集群的性能產生影響,進而拋出FielddataMemoryUsedBytes內存不足異常。
 

一、異常(chang):

java.util.concurrent.ExecutionException: CircuitBreakingException[[fielddata] Data too large, data for [_id] would be [xxxx/x.xgb], which is larger than the limit of [xxxx/x.xgb]]

 

 

二、原因(yin):

由于復雜的(de)查詢涉及到對(dui) _id的(de)某(mou)種內存密集型處理時,會將大量的(de) _id 相關數(shu)(shu)據(ju)加載(zai)到內存中(zhong)的(de)fielddata結(jie)(jie)構里,以便可以快速執行訪問(wen),但fielddata不(bu)是(shi)臨時緩(huan)存,它是(shi)駐留在內存里的(de)數(shu)(shu)據(ju)結(jie)(jie)構,垃圾回收是(shi)不(bu)會回收這(zhe)部分緩(huan)存的(de),因此當數(shu)(shu)據(ju)量多的(de)時候(多個索引),其大小突破會系統設(she)定的(de)閾值。

 

三(san)、處(chu)理方案:

1、定位什么字段導致的fielddata突增:

# 顯示每個節點(dian)字段所(suo)占(zhan)的堆空(kong)間 并(bing)按照所(suo)占(zhan)空(kong)間降序排列(lie)
GET _cat/fielddata?v&s=size:desc
# indices:查看集群(qun)中(zhong)所(suo)有index的(de)詳細信息
GET _cat/indices?v&h=index,fielddata.memory_size&s=fielddata.memory_size:desc

2、修改排序聚合方案:

在達(da)到(dao)報(bao)警水位線之前將“對text類型字(zi)段、_id 字(zi)段進行(xing)(xing)排序(xu)聚合”的(de)業(ye)務進行(xing)(xing)修改或使用其它方案替代,保(bao)證集群(qun)的(de)穩(wen)定性(xing)

3、清理指定索引fielddata緩存:

可能導致該索引的查詢變慢,引起業務抖動,需提前和客戶說明風險:

#單個(ge): 
POST /索引名/_cache/clear?fielddata=true
#全量:
POST /_cache/clear?fielddata=true 

 

posted on 2024-12-16 23:41  愛文(Iven)  閱讀(111)  評論(0)    收藏  舉報

導航