首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Solr堆转储-如何诊断

Solr堆转储-如何诊断
EN

Stack Overflow用户
提问于 2017-03-07 19:12:58
回答 1查看 859关注 0票数 0

在内存不足的错误上得到堆转储。分析Visual中的转储

在byte[]中看到许多TreeMap$Entry FieldCacheImpl$SortedDocValues数组(占我们8GB堆的77%)

我们正在考虑为我们排序的字段打开docValues以“true”,但在我们试验DocValues并要求在我们的4个数据中心中的每一个重新索引我们的2亿文档索引之前,我们更愿意确定根本原因。

对于我应该在这个堆转储中寻找什么才能找到一个明确的根本原因,有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2017-03-07 22:04:55

通过启用docvalue,您几乎可以保证事情会有所改善。如果在进行大范围重新索引之前需要一些证据,您可以只需:

  1. 创建当前设置的较小版本,例如200m
  2. 以更小的jvm堆大小运行它,比如1GB。看到它,OOM,如果它没有,减少堆直到它OOMs
  3. 现在启用docvalue、重新索引并在同一个堆上运行,这显然更好。
  4. 现在,您可以在真正的prod设置中以某种平静的心态实现docvalue。

编辑你的评论:好吧,如果你在200M docs...not上排序,确定一个4GB的堆是否如此庞大。您可以检查您是否正在缓存不需要/无效的fq (比如现在在一个具有毫秒精度的日期字段中)。fqs将占用大索引中的一些内存。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42656421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档