我需要监视JVM Metaspace的使用情况。您可以在以下方面帮我吗?

如何找到使用的元空间大小?

使用以下命令,我找到了maxmetaspace和min元空间:

jmap -heap `ps -ef | grep java | grep -v grep | awk '{print $2}'` | grep -i Metaspace



但是如何找到当前使用的内存的值(value)呢?

最佳答案

您可以使用MemoryPoolMXBean

List<MemoryPoolMXBean> memPool = ManagementFactory.getMemoryPoolMXBeans();
for (MemoryPoolMXBean p : memPool)
{
    if ("Metaspace".equals(p.getName())
    {
       ... here you have the memory pool mx bean with information about he metaspace
    }
}

09-13 00:06