问题描述
我的Java服务在-xms and -Xmx
设置为8GB的16 GB RAM主机上运行。主机正在运行其他一些进程。
我注意到,随着时间的流逝,我的服务消耗了更多的内存。我在主机上运行了该命令ps aux | awk '{print $6/1024 " MB\t\t" $11}' | sort -n
,并通过我的java服务记录了内存使用情况。服务启动时,它使用了大约8GB的内存(将-xms and -Xmx
设置为8GB),但是一周之后,它使用了大约9GB +的内存。每天消耗约100MB的内存。
我比较了堆转储,没有发现任何内存泄漏。重新启动Java服务之前/之后,堆内存使用情况没有太大差异。但是,我注意到大量无法访问的对象。我比较了两个堆转储,发现由于不可回收对象而导致的保留堆大小增加了约500MB。
所以我的猜测是,由于完全GC尚未启动,某些对象位于年轻空间中而未进行GC或未移至旧空间且未进行GC。
我的问题是
- 我的JVM配置是否正确?我需要进行更改以避免大量无法访问的对象。
-xms8G -Xmx8G
-XX:+UseG1GC
-XX:+disableExplicitGC
-XX:MaxGCPauseMillis=75
-XX:MetaspaceSize=128m
-XX:MaxMetaspaceSize=1024m
-XX:ReservedCodeCacheSize=256m
-XX:+PrintGCDetails
-XX:+PrintGCDateStamps
-XX:+PrintTenuringdistribution
-XX:+PrintGCApplicationConcurrentTime
-XX:+PrintGCApplicationStoppedTime
-XX:+PrintSafepointStatistics
-XX:+CITime
-XX:+PrintPromotionFailure
-XX:+PrintGCCause
-XX:+PrintJNIGCStalls
-XX:+PrintHeapAtGC
-XX:GCLogFileSize=100M
-XX:NumberOfGCLogFiles=2
- 从下面显示的
jmap -heap
中,我看到MaxNewSize
设置为4GB,而NewSize
设置为1MB。是否会导致GC中的任何问题,从而导致大量无法访问的对象?某些设置是盲目的设置(从某些默认值开始)。
Heap Configuration:
MinHeapFreeRatio = 40
MaxHeapFreeRatio = 70
MaxHeapSize = 8589934592 (8192.0MB)*
NewSize = 1363144 (1.2999954223632812MB)
MaxNewSize = 5150605312 (4912.0MB)
OldSize = 5452592 (5.1999969482421875MB)
NewRatio = 2
SurvivorRatio = 8
MetaspaceSize = 134217728 (128.0MB)
CompressedClassspaceSize = 1065353216 (1016.0MB)
MaxMetaspaceSize = 1073741824 (1024.0MB)
G1HeapRegionSize = 4194304 (4.0MB)
Heap Usage:
G1 Heap:
regions = 2048
capacity = 8589934592 (8192.0MB)
used = 2241515408 (2137.6756744384766MB)
free = 6348419184 (6054.324325561523MB)
26.09467376023531% used
G1 Young Generation:
Eden Space:
regions = 26
capacity = 4655677440 (4440.0MB)
used = 109051904 (104.0MB)
free = 4546625536 (4336.0MB)
2.3423423423423424% used
Survivor Space:
regions = 35
capacity = 146800640 (140.0MB)
used = 146800640 (140.0MB)
free = 0 (0.0MB)
100.0% used
G1 Old Generation:
regions = 480
capacity = 3787456512 (3612.0MB)
used = 1981468560 (1889.6756744384766MB)
free = 1805987952 (1722.3243255615234MB)
52.31660228234985% used
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)