内存主机和内存参数之间的关系xms和xmx来自Java

我有以下主机与内存的细节:

$free -m total used free shared buffers cached Mem: 7872 7579 292 17 483 3983 -/+ buffers/cache: 3112 4759 Swap: 2047 14 2033 

我有一个Java应用程序运行params -Xms200m -Xmx200m ,有人可以请解释为什么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 

Solutions Collecting From Web of "内存主机和内存参数之间的关系xms和xmx来自Java"

Java进程使用的内存(如OS所示)不仅限于Java堆。 还有更多的内存区域也应该被计算在内:

  • Metaspace(类元数据所在的地方);
  • 代码缓存(存储JIT编译的方法和所有生成的代码);
  • 直接字节缓冲区;
  • 内存映射文件,包括由JVM映射的文件,例如类路径上的所有JAR文件;
  • 线程堆栈;
  • JVM代码本身以及Java Runtime加载的所有动态库;
  • 其他内部JVM结构。

使用NativeMemoryTracking JDK功能获取JVM使用的内存区域的详细分类:

 java -XX:NativeMemoryTracking=detail -XX:+UnlockDiagnosticVMOptions -XX:+PrintNMTStatistics