【问题标题】:Is this a memory leak in Solr?这是 Solr 中的内存泄漏吗?
【发布时间】:2017-04-17 18:35:54
【问题描述】:

我们正在运行 Solr 4.10 并看到非常长的响应时间:

avgRequestsPerSecond:2.5
5minRateReqsPerSecond:5.2
75thPcRequestTime:3.45
95thPcRequestTime:16.68
99thPcRequestTime:1366.22
999thPcRequestTime:3477.79

在运行 jstat -gc 时,我看到 OC 和 OU 保持相等,而 FGC 不断发生。这清楚地表明 Solr 中存在内存泄漏,对吧?我该如何进一步分析?

jstat -gc 32110 1s | awk '{print $3 "\t" $4 "\t" $6 "\t" $7 "\t" $8 "\t" $15 }'
S0U S1U     EU          OC          OU      FGC
0.0 0.0 6632870.9   12582912.0  12402105.3  29902
0.0 0.0 6684761.8   12582912.0  12402105.2  29902
0.0 0.0 6691460.8   12582912.0  12402105.2  29902
0.0 0.0 6694722.4   12582912.0  12402105.2  29903
0.0 0.0 6694725.9   12582912.0  12402105.2  29904
0.0 0.0 6695870.2   12582912.0  12402105.0  29904
0.0 0.0 6729501.5   12582912.0  12402105.0  29904
0.0 0.0 6732006.7   12582912.0  12402105.0  29906
0.0 0.0 6733112.6   12582912.0  12402103.8  29906
0.0 0.0 6741058.6   12582912.0  12402103.8  29906
0.0 0.0 6758686.3   12582912.0  12402103.8  29907
0.0 0.0 6759295.8   12582912.0  12402103.8  29908
0.0 0.0 6764812.4   12582912.0  12402103.6  29908
0.0 0.0 6915819.8   12582912.0  12402103.6  29908
0.0 0.0 6927843.8   12582912.0  12402103.6  29909
0.0 0.0 6936952.4   12582912.0  12402103.6  29910
0.0 0.0 6938582.2   12582912.0  12402027.2  29910
0.0 0.0 6965969.7   12582912.0  12402027.2  29910
0.0 0.0 6965969.7   12582912.0  12402027.2  29911
0.0 0.0 6966291.8   12582912.0  12402027.2  29912
0.0 0.0 7018558.7   12582912.0  12402026.6  29912
0.0 0.0 7021295.9   12582912.0  12402026.6  29912
0.0 0.0 7022254.9   12582912.0  12402026.6  29913
0.0 0.0 7064476.5   12582912.0  12402026.6  29914
0.0 0.0 7067874.0   12582912.0  12402026.4  29914
0.0 0.0 7070544.2   12582912.0  12402026.4  29914
0.0 0.0 7076188.2   12582912.0  12402026.4  29916
0.0 0.0 7076556.2   12582912.0  12402007.2  29916
0.0 0.0 7101610.3   12582912.0  12402007.2  29916
0.0 0.0 7156338.1   12582912.0  12402007.2  29917
0.0 0.0 7158966.6   12582912.0  12402007.2  29918
0.0 0.0 7172960.0   12582912.0  12402007.2  29918
0.0 0.0 7174184.7   12582912.0  12402007.2  29918
0.0 0.0 7278617.7   12582912.0  12402007.2  29919
0.0 0.0 7321347.9   12582912.0  12402007.2  29920
0.0 0.0 7473383.3   12582912.0  12401949.4  29920
0.0 0.0 7478629.0   12582912.0  12401949.4  29920
0.0 0.0 7560124.9   12582912.0  12401949.4  29921
0.0 0.0 7586431.8   12582912.0  12401949.4  29922
0.0 0.0 7587841.2   12582912.0  12401949.1  29922
0.0 0.0 7607755.4   12582912.0  12401949.1  29922
0.0 0.0 7656487.0   12582912.0  12401949.1  29923
0.0 0.0 7662770.1   12582912.0  12401949.1  29924
0.0 0.0 7662770.1   12582912.0  12401949.1  29924
0.0 0.0 7810619.5   12582912.0  12401908.7  29924
0.0 0.0 7915475.2   12582912.0  12401908.7  29924
0.0 0.0 7916589.7   12582912.0  12401908.7  29925
0.0 0.0 7923831.6   12582912.0  12401908.7  29926
0.0 0.0 7927085.1   12582912.0  12401836.2  29926
0.0 0.0 7947903.0   12582912.0  12401836.2  29926
0.0 0.0 7994024.6   12582912.0  12401836.2  29926
0.0 0.0 7994024.6   12582912.0  12401836.2  29927
0.0 0.0 8041582.5   12582912.0  12401836.2  29928
0.0 0.0 8057792.8   12582912.0  12401835.5  29928
0.0 0.0 8151537.0   12582912.0  12401835.5  29928
0.0 0.0 8151551.6   12582912.0  12401835.5  29929
0.0 0.0 8152414.2   12582912.0  12401835.5  29930
0.0 0.0 8159020.1   12582912.0  12401835.5  29930
0.0 0.0 8159020.1   12582912.0  12401834.4  29930
0.0 0.0 8169436.4   12582912.0  12401834.4  29930
0.0 0.0 8170238.0   12582912.0  12401834.4  29931
0.0 0.0 8172264.0   12582912.0  12401834.4  29932
0.0 0.0 8193949.3   12582912.0  12401796.7  29932
0.0 0.0 8194900.5   12582912.0  12401796.7  29932
0.0 0.0 8204694.2   12582912.0  12401796.7  29933
0.0 0.0 8207894.7   12582912.0  12401796.7  29934
0.0 0.0 8207894.7   12582912.0  12401796.7  29934
0.0 0.0 8224413.5   12582912.0  12401796.5  29934
0.0 0.0 8229298.6   12582912.0  12401796.5  29934
0.0 0.0 8233077.3   12582912.0  12401796.5  29935
0.0 0.0 8233100.2   12582912.0  12401796.5  29936
0.0 0.0 8291558.6   12582912.0  12401796.2  29936
0.0 0.0 8294201.9   12582912.0  12401796.2  29936
0.0 0.0 8376223.8   12582912.0  12401796.2  29937
0.0 0.0 8376223.8   12582912.0  12401796.2  29937
0.0 0.0 8430118.2   12582912.0  12401796.2  29938
0.0 0.0 8434741.0   12582912.0  12401710.7  29938
0.0 0.0 8526729.6   12582912.0  12401710.7  29938
0.0 0.0 8555110.4   12582912.0  12401710.7  29939
0.0 0.0 8579409.8   12582912.0  12401710.7  29940
0.0 0.0 8579409.8   12582912.0  12401710.7  29940
0.0 0.0 8695038.1   12582912.0  12401643.6  29940
0.0 0.0 8696711.3   12582912.0  12401643.6  29940
0.0 0.0 8696711.3   12582912.0  12401643.6  29941
0.0 0.0 8737284.3   12582912.0  12401643.6  29942
0.0 0.0 8737284.3   12582912.0  12401643.6  29942
0.0 0.0 8772882.9   12582912.0  12401642.1  29942
0.0 0.0 8775170.0   12582912.0  12401642.1  29942
0.0 0.0 8775170.0   12582912.0  12401642.1  29943
0.0 0.0 8794554.3   12582912.0  12401642.1  29944
0.0 0.0 8794767.2   12582912.0  12401642.1  29944
0.0 0.0 8824500.6   12582912.0  12401581.8  29944
0.0 0.0 8826083.6   12582912.0  12401581.8  29944
0.0 0.0 8826083.6   12582912.0  12401581.8  29945
0.0 0.0 8911554.7   12582912.0  12401581.8  29946
0.0 0.0 8911554.7   12582912.0  12401581.8  29946
0.0 0.0 8958907.7   12582912.0  12401467.2  29946
0.0 0.0 8959676.5   12582912.0  12401467.2  29946
0.0 0.0 8959676.5   12582912.0  12401467.2  29947
0.0 0.0 8964523.1   12582912.0  12401467.2  29948
0.0 0.0 8964523.1   12582912.0  12401467.2  29948
0.0 0.0 8987262.5   12582912.0  12401467.2  29948
0.0 0.0 8992354.3   12582912.0  12401467.2  29948
0.0 0.0 8992354.3   12582912.0  12401467.2  29949
0.0 0.0 8993935.5   12582912.0  12401467.2  29950
0.0 0.0 8993935.5   12582912.0  12401467.2  29950
0.0 0.0 9004951.2   12582912.0  12401466.4  29950
0.0 0.0 9014431.4   12582912.0  12401466.4  29950
0.0 0.0 9014431.4   12582912.0  12401466.4  29951

这是我的 JVM 参数:

-Xloggc:tomcat7/logs/gc.log
-Xmx24g
-Xms24g
-XX:+UseConcMarkSweepGC
-XX:MaxPermSize=256m
-XX:MaxNewSize=12G
-XX:NewSize=12G
-XX:SurvivorRatio=6
-XX:+UseCMSInitiatingOccupancyOnly
-XX:CMSInitiatingOccupancyFraction=80
-XX:TargetSurvivorRatio=80
-XX:MaxTenuringThreshold=8
-XX:+UseConcMarkSweepGC
-XX:+CMSScavengeBeforeRemark
-XX:PretenureSizeThreshold=512m
-XX:CMSFullGCsBeforeCompaction=1
-XX:CMSTriggerPermRatio=80
-XX:CMSMaxAbortablePrecleanTime=6000
-XX:+CMSConcurrentMTEnabled
-XX:+UseParNewGC
-XX:ConcGCThreads=6
-XX:ParallelGCThreads=6
-XX:+UseLargePages
-XX:+PrintGCApplicationStoppedTime
-XX:+PrintHeapAtGC
-XX:+PrintGCDetails
-XX:+PrintGCDateStamps
-XX:+PrintGCTimeStamps
-XX:+PrintTenuringDistribution
-XX:ThreadStackSize=256

【问题讨论】:

    标签: java solr memory-leaks jvm heap-memory


    【解决方案1】:

    除了 Solr 使用大量内存之外,您无法从这些有限的数据中推断出任何内容。 jstat 输出末尾使用的总内存(将 EU 和 OU 相加)仅显示 20.7GB 的主堆正在使用。如果我们假设其他内存池具有典型大小,那么 Java 使用的总内存可能略小于 22GB,至少还有 2GB 的堆尚未分配。

    您是否在日志中遇到过 OutOfMemoryError? Solr 实例正在处理的索引有哪些类型的统计数据——文档数、已删除文档数、索引大小等?您需要有关垃圾收集的长期信息来确定是否存在内存泄漏。

    在 Solr 中内存泄漏极为罕见,我不知道最近有任何情况。

    【讨论】:

    • 如果 Solr 中没有内存泄漏,那么为什么 FGC-events 没有清除 OU 内存?是否有一个粗略的公式可以用来了解 Solr 对给定数量的文档和查询所需的堆内存? (仅为近似值,无需准确)。请注意,我必须每隔几个小时重新启动机器,因为它们需要很长时间才能响应任何查询。在 gc.log 中,我也看到由于这些 GC 事件,应用程序线程过于频繁地停止并且每秒停止大约 500 毫秒。
    • GC 无法释放仍在使用的内存。内存仍在使用中。无法提供所需的堆内存指南,甚至是一般指南。变量太多了。 lucidworks.com/blog/…wiki.apache.org/solr/SolrPerformanceProblems#Java_Heap
    猜你喜欢
    • 2011-02-20
    • 2013-08-12
    • 2013-01-08
    • 2013-11-12
    • 2015-05-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多