我有一个由三个Solr实例(9Gb堆)组成的SolrCloud,每个实例由一个专用主机(12Gb RAM)托管。
当前,我们拥有150多个百万文档,并且还在不断增长。有时我们会执行很多查询,我发现(我认为是)JVM中的一种奇怪行为:
在高原上,所有实例都升高了OutOfMemoryErrors
,并且随着堆的上升,我观察到GC时间,我发现我认为几乎没有GC:
我已将所有实例配置为使用GC1,并遵循了有关配置良好的Solr实例的堆的文档,但是我觉得这里确实有问题。
有人可以帮我理解为什么查询时没有GC发生的原因(可能是某些缓存调整或内存泄漏)吗?
预先感谢:)
答案 0 :(得分:0)
好吧,以防万一有人遇到这个问题,这确实是我特定用途需要的某些缓存调整。
TL; DR:
调整我收藏中的filterCache
就可以了! :D
我如何解决它:
所有这些可以找出FastLRUCache对象包含int[]
个数组。谷歌搜索“ solr堆增长FastLRUCache”,我发现了this。
因此,由于现在此集合中有2.5亿个文档,所以我要做的就是将filterCache
设置从其原始512
值调整到一个更低的数字,例如20
大概。
希望这对以后的人有帮助。