怎么又是你

index.store.preload配置nvd

Elasticsearch | 作者 bluebird168 | 发布于2021年06月23日 | 阅读数:1955

大家好,我配置了"index.store.preload": ["nvd"], 想把norms参数加载进缓存,在检索时能加快响应速度。索引了一个2e文档,索引字段6个text,14个keyword,正常norms文件应该有几百M的吧,但是在观察kibana的norms参数时,只有几百kb大小,感到疑惑。
es配置:5台服务器,可用内存200G以上,es-jvm 80G。
索引大小:0副本,110G左右
 
微信图片_20210623110819.png
已邀请:

Charele - Cisco4321

赞同来自: bluebird168

刚刚下载了一个kabana看了下,然后又看了ES代码,好像明白了。
它这里显示的Norms,和你的数据量无关,只和你索引里的元数据有关(就是字段的多少)
 
看下它的来路:
  @Override
  public long ramBytesUsed() {
    return 64L * norms.size(); // good enough
  }
 
也就是说你有多少个字段,它就是64倍。
 
我用PUT {"name1": "aaa", "name2": "bbb"}建了个索引(它有2个字段)证实了一下,

QQ图片20210624235626.png

 

Charele - Cisco4321

赞同来自:

把["nvd"]换成["*"]看看
 
另外,"index.store.preload"的作用是“将此缓冲区内容加载到物理内存中 ”
 
 

zhangdadadapao

赞同来自:

kibana统计的应该是堆内存的吧,“norms参数加载进缓存”指的是file system cache,也就是page cache,可以用vmtouch或pcstat采集lucene各个文件的page cache

要回复问题请先登录注册