首页 > 解决方案 > JVM 堆内存分配

问题描述

我对 JVM 内存分配和从操作系统看到的内存使用情况有点困惑

有人告诉我,当达到 Java 堆限制时,内部 JVM 垃圾收集进程将释放分配的堆内的内存以供重用,但它不会向操作系统释放内存。

所以我的服务器有一个 32GB 的 RAM,并且有一个运行“-Xmx8192m”的 Java(我使用 ps 命令检查)

理论上,如果那个Java程序是系统上运行的唯一进程......当我从操作系统监控内存使用时,它至少可以达到8G / 32G = 25%,一旦到达那里,内存就会不再低于25%??

Java进程也定义了“-Xms8192m”。这是否意味着,一开始,内存使用量将立即达到 25%?

因为,据我观察,内存使用量仍然从一个相对较小的值开始,例如:3%,然后逐渐增加。

希望有人能解开我的疑惑。欢迎任何意见。谢谢。

标签: javamemory-managementjvm

解决方案


推荐阅读