我注意到GarbageCollectorMXBean#getName()
和MemoryPoolMXBean#getName()
在两个服务器之间返回不同的值。
我试图运行显示豆名称的简单代码,如下所示。
ManagementFactory.getGarbageCollectorMXBeans().forEach(b ->
System.out.println(b.getName()));
ManagementFactory.getMemoryPoolMXBeans().forEach(b ->
System.out.println(b.getName()));
结果在下面。
EC2 AMI:
ami-08847abae18baa040
OS:
$ cat /etc/system-release
Amazon Linux 2
$ cat /etc/system-release-cpe
cpe:2.3:o:amazon:amazon_linux:2
JDK:
java-1.8.0-openjdk-1.8.0.181-3.b13.amzn2.x86_64
输出:
Copy
MarkSweepCompact
Code Cache
Metaspace
Compressed Class Space
Eden Space
Survivor Space
Tenured Gen
EC2 AMI:
ami-08847abae18baa040
OS:
$ cat /etc/system-release
Amazon Linux 2
$ cat /etc/system-release-cpe
cpe:2.3:o:amazon:amazon_linux:2
JDK:
java-1.8.0-openjdk-1.8.0.181-3.b13.amzn2.x86_64
输出:
PS Scavenge
PS MarkSweep
Code Cache
Metaspace
Compressed Class Space
PS Eden Space
PS Survivor Space
PS Old Gen
如上所述,
GarbageCollectorMXBean名称不同相同
MemoryPoolMXBean名称不同相同
它们的唯一区别是ec2实例类型。
这对我来说很奇怪,谁知道为什么?