我有以下主机的内存详细信息:
$free -m
total used free shared buffers cached
Mem: 7872 7579 292 17 483 3983
-/+ buffers/cache: 3112 4759
Swap: 2047 14 2033
我有一个使用params -Xms200m -Xmx200m
运行的java应用程序,有人可以解释一下为什么VCZ是3800076而RSS是241304(更多是Java参数)
来自ps -aux
命令:
66345 6773 0.2 2.9 3800076 241304 ? Sl Apr1 12:06 /apps/myapps/myapp1/java/bin/java -Xms200m -Xmx200m
答案 0 :(得分:17)
Java进程使用的内存(如操作系统所见)不仅限于Java堆。还应该计算更多的内存区域:
使用NativeMemoryTracking JDK功能获取JVM使用的内存区域的详细分类:
java -XX:NativeMemoryTracking=detail -XX:+UnlockDiagnosticVMOptions -XX:+PrintNMTStatistics