solr 7.7崩溃,堆使用率100%



我正在从solr 6.6迁移到solr 7.7。使用与solr 6.6相同的配置运行相同的查询和数据集,solr 7.7因GC问题而崩溃。我尝试拍摄堆快照,它看起来像这样

num     #instances         #bytes  class name (module)
-------------------------------------------------------
1:      96550804     2456456648  [B (java.base@11.0.5)
2:      96197629     2308743096  org.apache.lucene.util.BytesRef
3:      96139148     2307339552  org.apache.lucene.index.Term
4:       1839819      440114232  [I (java.base@11.0.5)
5:       1800360      417537648  [Lorg.apache.lucene.index.Term;
6:       1799767       57592544  org.apache.lucene.search.PhraseQuery
7:       1803933       43294392  org.apache.lucene.search.BooleanClause
8:       1376256       33030144  org.apache.solr.update.VersionBucket
9:        137210       32160648  [C (java.base@11.0.5)
10:         36817       16598560  [J (java.base@11.0.5)
11:         43901       11346568  [Ljava.lang.Object; (java.base@11.0.5)
12:        290325        6967800  java.lang.String (java.base@11.0.5)

来自GC分析,旧GC达到峰值,触发完整GC,这需要很长时间,并触发STW事件暂停所有solr操作。

这可能是什么原因呢?

仔细检查您发送给solr的查询,如果它们包含rows计数到非常高的值。尝试在请求中将rows计数限制为最大10,000,以获得更快的GC,这是我个人认为更安全的方法。如果需要,使用分页来提取大量的文档。如果您的查询结果只有几百个也没关系,如果您在请求中使用非常大的rows参数值,则会增加GC时间。

如果不是这种情况,您应该调整您的GC设置。

相关内容

  • 没有找到相关文章

最新更新