我想知道 Java 进程在某个时间使用的总堆大小是多少,我必须使用jmap
.
的输出jmap -heap <pid>
给了我这样的东西:
正在附加到进程 ID 2899,请稍候... 调试器连接成功。 检测到服务器编译器。 JVM版本是14.2-b01 使用线程局部对象分配。 具有 2 个线程的并行 GC 堆配置: MinHeapFreeRatio = 40 MaxHeapFreeRatio = 70 MaxHeapSize = 1258291200 (1200.0MB) 新大小 = 1048576 (1.0MB) MaxNewSize = 4294901760 (4095.9375MB) OldSize = 4194304 (4.0MB) 新比率 = 8 幸存者比率 = 8 PermSize = 16777216 (16.0MB) MaxPermSize = 67108864 (64.0MB) 堆使用: PS年轻一代 伊甸空间: 容量 = 119013376 (113.5MB) 使用 = 117277608 (111.84464263916016MB) 免费 = 1735768 (1.6553573608398438MB) 98.54153536489882% 已使用 从太空: 容量 = 131072 (0.125MB) 使用 = 81920 (0.078125MB) 免费 = 49152 (0.046875MB) 62.5% 已使用 到太空: 容量 = 131072 (0.125MB) 使用 = 0 (0.0MB) 免费 = 131072 (0.125MB) 0.0% 已使用 PS老一代 容量 = 954466304 (910.25MB) 使用 = 80791792 (77.04905700683594MB) 免费 = 873674512 (833.2009429931641MB) 8.46460390077846% 已使用 PS烫发一代 容量 = 57671680 (55.0MB) 使用 = 41699008 (39.76727294921875MB) 免费 = 15972672 (15.23272705078125MB) 72.30413263494319% 已使用
我可以使用这些值的公式来找出使用的总内存吗?
欢迎其他关于如何在 Linux 上找到此问题的建议,但jmap
优先于它们。
谢谢