我限制了Xmx为2650,但是为啥超了1个G?请大佬帮忙指导
以下是参数:
jdk1.8 sentos7
jps -v
6624 server-0.0.1-SNAPSHOT.jar -Xms2350m -Xmx2650m -Xmn2000m
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
6624 root 20 0 10.2g 3.5g 11476 S 53.3 45.9 3813:06 java
jmap -heap 6624
Attaching to process ID 6624, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.172-b11
using thread-local object allocation.
Parallel GC with 4 thread(s)
Heap Configuration:
MinHeapFreeRatio = 0
MaxHeapFreeRatio = 100
MaxHeapSize = 2778726400 (2650.0MB)
NewSize = 2097152000 (2000.0MB)
MaxNewSize = 2097152000 (2000.0MB)
OldSize = 367001600 (350.0MB)
NewRatio = 2
SurvivorRatio = 8
MetaspaceSize = 21807104 (20.796875MB)
CompressedClassSpaceSize = 1073741824 (1024.0MB)
MaxMetaspaceSize = 17592186044415 MB
G1HeapRegionSize = 0 (0.0MB)
Heap Usage:
PS Young Generation
Eden Space:
capacity = 2070413312 (1974.5MB)
used = 462973016 (441.52547454833984MB)
free = 1607440296 (1532.9745254516602MB)
22.361381339495562% used
From Space:
capacity = 13631488 (13.0MB)
used = 4538384 (4.3281402587890625MB)
free = 9093104 (8.671859741210938MB)
33.29338660606971% used
To Space:
capacity = 13107200 (12.5MB)
used = 0 (0.0MB)
free = 13107200 (12.5MB)
0.0% used
PS Old Generation
capacity = 681574400 (650.0MB)
used = 660437112 (629.841911315918MB)
free = 21137288 (20.15808868408203MB)
96.8987555870643% used
jcmd 6624 GC.heap_info
6624:
6624:
PSYoungGen total 2034688K, used 1245117K [0x0000000743000000, 0x00000007c0000000, 0x00000007c0000000)
eden space 2021888K, 61% used [0x0000000743000000,0x000000078ec2b420,0x00000007be680000)
from space 12800K, 30% used [0x00000007be680000,0x00000007bea44010,0x00000007bf300000)
to space 12800K, 0% used [0x00000007bf380000,0x00000007bf380000,0x00000007c0000000)
ParOldGen total 665600K, used 654323K [0x000000071a600000, 0x0000000743000000, 0x0000000743000000)
object space 665600K, 98% used [0x000000071a600000,0x00000007424fcf88,0x0000000743000000)
Metaspace used 79265K, capacity 85640K, committed 86016K, reserved 1124352K
class space used 9454K, capacity 10410K, committed 10496K, reserved 1048576K
-Xmx2650m 只是设定了jvm运行时最大可分配的堆空间大小为2560m,jvm本身、栈空间、本地方法区等同样需要操作系统分配内存
那些东西那么大吗?不是应该一两百兆就够了吗? 刚启动的时候是2.7G 然后慢慢的多 昨天多到3.1G,今天我看了一眼,变成3.2G了。半个G还要多
项目中大量使用框架,大量的反射和动态代理创建的代理类,然后你懂的……
@旧城已空旧梦已逝: 那 现在都3.3G了,请问那些多出来的是存到这里了吗?CompressedClassSpaceSize
最新的:
jmap -heap 6624
Attaching to process ID 6624, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.172-b11
using thread-local object allocation.
Parallel GC with 4 thread(s)
Heap Configuration:
MinHeapFreeRatio = 0
MaxHeapFreeRatio = 100
MaxHeapSize = 2778726400 (2650.0MB)
NewSize = 2097152000 (2000.0MB)
MaxNewSize = 2097152000 (2000.0MB)
OldSize = 367001600 (350.0MB)
NewRatio = 2
SurvivorRatio = 8
MetaspaceSize = 21807104 (20.796875MB)
CompressedClassSpaceSize = 1073741824 (1024.0MB)
MaxMetaspaceSize = 17592186044415 MB
G1HeapRegionSize = 0 (0.0MB)
Heap Usage:
PS Young Generation
Eden Space:
capacity = 2037383168 (1943.0MB)
used = 1717763376 (1638.1868133544922MB)
free = 319619792 (304.8131866455078MB)
84.31223949328319% used
From Space:
capacity = 29360128 (28.0MB)
used = 4921672 (4.693672180175781MB)
free = 24438456 (23.30632781982422MB)
16.76311492919922% used
To Space:
capacity = 28311552 (27.0MB)
used = 0 (0.0MB)
free = 28311552 (27.0MB)
0.0% used
PS Old Generation
capacity = 681574400 (650.0MB)
used = 637472712 (607.9413528442383MB)
free = 44101688 (42.05864715576172MB)
93.52943889911359% used
@旧城已空旧梦已逝:
jcmd 6624 GC.heap_info
6624:
PSYoungGen total 2016768K, used 1243923K [0x0000000743000000, 0x00000007c0000000, 0x00000007c0000000)
eden space 1986560K, 62% used [0x0000000743000000,0x000000078eaf8fd8,0x00000007bc400000)
from space 30208K, 12% used [0x00000007bc400000,0x00000007bc7cc010,0x00000007be180000)
to space 28672K, 0% used [0x00000007be400000,0x00000007be400000,0x00000007c0000000)
ParOldGen total 665600K, used 611501K [0x000000071a600000, 0x0000000743000000, 0x0000000743000000)
object space 665600K, 91% used [0x000000071a600000,0x000000073fb2b7e0,0x0000000743000000)
Metaspace used 78192K, capacity 84560K, committed 84608K, reserved 1124352K
class space used 9387K, capacity 10360K, committed 10368K, reserved 1048576K
@旧城已空旧梦已逝: Metaspace和 class space 看着也不高