Я заметил, что GarbageCollectorMXBean#getName()
и MemoryPoolMXBean#getName()
возвращают разные значения между двумя серверами.
Я попытался запустить простой код, который показывает имя бина, как показано ниже.
ManagementFactory.getGarbageCollectorMXBeans().forEach(b ->
System.out.println(b.getName()));
ManagementFactory.getMemoryPoolMXBeans().forEach(b ->
System.out.println(b.getName()));
результат ниже.
Сервер 1
EC2 AMI:
ami-08847abae18baa040
ОС:
$ 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
Сервер 2
EC2 AMI:
ami-08847abae18baa040
ОС:
$ 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
Как описано,
- AMI и Linux версии одинаковы
- JDK версии одинаковы
GarbageCollectorMXBean-имена не одинаковы
- Копировать <-> PS Scavenge
- MarkSweepCompact <-> PS MarkSweep
MemoryPoolMXЗначки бина не одинаковы
- Пространство Eden <-> Пространство Eden PS
- Пространство Survivor <-> Пространство PS Survivor
- Штатный генерал <-> PS Старый генерал
Единственное их отличие яs ec2 instance-type.
- Сервер 1 - t3.micro
- Сервер 2 - t3.small
Это очень странно для меня, кто-нибудь знает почему?