【发布时间】:2015-02-07 07:07:09
【问题描述】:
我在服务器上运行 java 代码。一开始,我查看了空闲内存,发现有超过 20GB 的内存是空闲的。然后我运行我的代码。它最初的 RAM 约为 9GB,但后来降至 2.7GB 左右。
我再次检查了可用内存,它仍然在 20GB 左右。但我不明白为什么服务器决定减少我的进程的专用内存。虽然还有一些其他用户在他们的进程中使用了大约 20GB 的 RAM,但我知道用户可以访问的内存量没有限制。
谁能解释为什么内存会减少?
如果您需要更多信息,我会说我在谈论物理内存 (RES)。专用于我的进程的虚拟内存始终为 32.8GB。
同时,我的代码运行需要很长时间。它已经运行了10多个小时。一个过程的持续时间是否有效? (我自己的答案是否定的,因为每当我使用top 命令检查内存分配时,我看到另一个用户正在使用 20GB 的 RAM,而且它永远不会改变!
【问题讨论】:
标签: java memory memory-management process server