我有一个 java 服务器任务,它占用内存。一方面,我怀疑它是否曾经超过 MinHeapFreeRatio,但这是猜测。更有趣的是,GC 将成熟代减少到大约 2%,但从未减少为堆分配的内存。
堆配置: MinHeapFreeRatio = 40 MaxHeapFreeRatio = 70 MaxHeapSize = 3221225472 (3072.0MB) 新大小 = 268435456 (256.0MB) MaxNewSize = 268435456 (256.0MB) OldSize = 805306368 (768.0MB) 新比率 = 7 幸存者比率 = 8 PermSize = 21757952 (20.75MB) MaxPermSize = 176160768 (168.0MB) 堆使用: 新一代(伊甸园 + 1 个幸存者空间): 容量 = 241631232 (230.4375MB) 使用 = 71657320 (68.3377456665039MB) 免费 = 169973912 (162.0997543334961MB) 29.65565312351675% 已使用 伊甸空间: 容量 = 214827008 (204.875MB) 使用 = 47322984 (45.130714416503906MB) 免费 = 167504024 (159.7442855834961MB) 22.028414602320392% 已使用 从太空: 容量 = 26804224 (25.5625MB) 使用 = 24334336 (23.20703125MB) 免费 = 2469888 (2.35546875MB) 90.78545232273838% 已使用 到太空: 容量 = 26804224 (25.5625MB) 使用 = 0 (0.0MB) 免费 = 26804224 (25.5625MB) 0.0% 已使用 并发标记扫描生成: 容量 = 2952790016 (2816.0MB) 使用 = 66930392 (63.829795837402344MB) 免费 = 2885859624 (2752.1702041625977MB) 2.2666830908168447% 已使用 烫发一代: 容量 = 45752320 (43.6328125MB) 使用 = 27404664 (26.13512420654297MB) 免费 = 18347656 (17.49768829345703MB) 59.89786747426142% 已使用