繁体   English   中英

为什么进程专用内存在服务器上减少了?

[英]Why does dedicated memory to a process reduces on the server?

我在服务器上运行Java代码。 一开始,我检查了可用内存,发现有20GB以上的可用内存。 然后我运行我的代码。 它首先以大约9GB的RAM开始,但后来减少到大约2.7GB。

我再次检查了可用内存,它仍然约为20GB。 但是我不明白为什么服务器决定减少进程的专用内存。 尽管有些其他用户正在使用大约20GB的RAM进行处理,但是我知道用户可以访问的内存数量没有限制。

谁能解释为什么内存减少?

如果您需要更多信息,我想说的是我在谈论物理内存(RES)。 专门用于我的进程的虚拟内存始终为32.8GB。 同时,我的代码需要很多时间才能运行。 它已经运行了十多个小时。 一个过程的持续时间可以有效吗? (我自己的回答是“否”,因为每当我使用top命令检查内存分配时,我都会看到另一个用户正在使用20GB的RAM,并且它永远不会改变!

我假设您正在使用top所以您在谈论Unix / Linux。

最可能的原因是您的应用程序进入了执行模式,在该模式下,它正在积极使用的对象的工作集全部位于相对较少的内存页中。 如果您的应用程序不读取或写入其他页面,则虚拟内存系统将逐渐刷新到磁盘(如果它们脏了),然后将它们添加到空闲池中。 大概页面随后被其他进程使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM