java gc 100% from 和 0% to space
java gc 100% of from and 0% of to space
遇到一个奇怪的问题,From space 是 100% 而 to space 总是 0。
谁能帮我离开这里?
jdk 1.8.25
os: linux
使用 JMAP 获取以下内容
Heap Configuration:
MinHeapFreeRatio = 40
MaxHeapFreeRatio = 70
MaxHeapSize = 32212254720 (30720.0MB)
NewSize = 268435456 (256.0MB)
MaxNewSize = 268435456 (256.0MB)
OldSize = 31943819264 (30464.0MB)
NewRatio = 5
SurvivorRatio = 4
MetaspaceSize = 268435456 (256.0MB)
CompressedClassSpaceSize = 1073741824 (1024.0MB)
MaxMetaspaceSize = 268435456 (256.0MB)
G1HeapRegionSize = 0 (0.0MB)
Heap Usage:
New Generation (Eden + 1 Survivor Space):
capacity = 223739904 (213.375MB)
used = 113230096 (107.98463439941406MB)
free = 110509808 (105.39036560058594MB)
50.607913016714264% used
Eden Space:
capacity = 179044352 (170.75MB)
used = 68534544 (65.35963439941406MB)
free = 110509808 (105.39036560058594MB)
38.27797036568906% used
From Space:
capacity = 44695552 (42.625MB)
used = 44695552 (42.625MB)
free = 0 (0.0MB)
100.0% used
To Space:
capacity = 44695552 (42.625MB)
used = 0 (0.0MB)
free = 44695552 (42.625MB)
0.0% used
concurrent mark-sweep generation:
capacity = 31943819264 (30464.0MB)
used = 390280592 (372.20057678222656MB)
free = 31553538672 (30091.799423217773MB)
1.2217718513072038% used
在gc.log中,它总是说'allocation failure',我怎样才能改变'survivor size'?
[GC (Allocation Failure) 10.371: [ParNew Desired survivor size 22347776 bytes, new threshold 15
"Allocation failure" 是次要 GC 的正常原因(较旧的 JVM 不是打印原因,但一直是分配失败)。
"To space" 应该始终为空(它不是空的,在 Stop-the-World GC 阶段,但随后 GC 完成它始终为 0%)。
100% "From space" 也可以。通常 JVM 会调整 tenuring threshold 以使 "From space" 尽可能接近 100%。不过,恰好达到 100% 意味着某些对象过早升级。
生存规模 space 由 -XX:SurvivorRatio=N
选项控制。使用 -XX:+PrintTenuringDistribution
对调整年轻 GC 很有用。
Here 可以找到更多与 GC 调优相关的 JVM 选项。
遇到一个奇怪的问题,From space 是 100% 而 to space 总是 0。 谁能帮我离开这里?
jdk 1.8.25 os: linux
使用 JMAP 获取以下内容
Heap Configuration:
MinHeapFreeRatio = 40
MaxHeapFreeRatio = 70
MaxHeapSize = 32212254720 (30720.0MB)
NewSize = 268435456 (256.0MB)
MaxNewSize = 268435456 (256.0MB)
OldSize = 31943819264 (30464.0MB)
NewRatio = 5
SurvivorRatio = 4
MetaspaceSize = 268435456 (256.0MB)
CompressedClassSpaceSize = 1073741824 (1024.0MB)
MaxMetaspaceSize = 268435456 (256.0MB)
G1HeapRegionSize = 0 (0.0MB)
Heap Usage:
New Generation (Eden + 1 Survivor Space):
capacity = 223739904 (213.375MB)
used = 113230096 (107.98463439941406MB)
free = 110509808 (105.39036560058594MB)
50.607913016714264% used
Eden Space:
capacity = 179044352 (170.75MB)
used = 68534544 (65.35963439941406MB)
free = 110509808 (105.39036560058594MB)
38.27797036568906% used
From Space:
capacity = 44695552 (42.625MB)
used = 44695552 (42.625MB)
free = 0 (0.0MB)
100.0% used
To Space:
capacity = 44695552 (42.625MB)
used = 0 (0.0MB)
free = 44695552 (42.625MB)
0.0% used
concurrent mark-sweep generation:
capacity = 31943819264 (30464.0MB)
used = 390280592 (372.20057678222656MB)
free = 31553538672 (30091.799423217773MB)
1.2217718513072038% used
在gc.log中,它总是说'allocation failure',我怎样才能改变'survivor size'?
[GC (Allocation Failure) 10.371: [ParNew Desired survivor size 22347776 bytes, new threshold 15
"Allocation failure" 是次要 GC 的正常原因(较旧的 JVM 不是打印原因,但一直是分配失败)。
"To space" 应该始终为空(它不是空的,在 Stop-the-World GC 阶段,但随后 GC 完成它始终为 0%)。
100% "From space" 也可以。通常 JVM 会调整 tenuring threshold 以使 "From space" 尽可能接近 100%。不过,恰好达到 100% 意味着某些对象过早升级。
生存规模 space 由 -XX:SurvivorRatio=N
选项控制。使用 -XX:+PrintTenuringDistribution
对调整年轻 GC 很有用。
Here 可以找到更多与 GC 调优相关的 JVM 选项。