在退出java(Grails)应用程序后,“;“用过的”;内存不可用';我不能释放
在Xen VPS中使用在退出java(Grails)应用程序后,“;“用过的”;内存不可用';我不能释放,java,grails,memory,ubuntu,xen,Java,Grails,Memory,Ubuntu,Xen,在Xen VPS中使用Linux 3.2.0-24-virtual#37 Ubuntu SMP Wed Apr 25 12:51:49 UTC 2012 i686 i686 i386 GNU/Linux 在运行Grails java应用程序之前,运行free-m表示: total used free shared buffers cached Mem: 4031 155 3875
Linux 3.2.0-24-virtual#37 Ubuntu SMP Wed Apr 25 12:51:49 UTC 2012 i686 i686 i386 GNU/Linux
在运行Grails java应用程序之前,运行free-m
表示:
total used free shared buffers cached
Mem: 4031 155 3875 0 30 87
-/+ buffers/cache: 37 3994
Swap: 8191 0 8191
total used free shared buffers cached
Mem: 4031 1031 2999 0 33 957
-/+ buffers/cache: 40 3991
Swap: 8191 0 8191
运行Grails应用程序、执行一些内存密集型处理并通过Ctrl-C
退出后,它表示:
total used free shared buffers cached
Mem: 4031 155 3875 0 30 87
-/+ buffers/cache: 37 3994
Swap: 8191 0 8191
total used free shared buffers cached
Mem: 4031 1031 2999 0 33 957
-/+ buffers/cache: 40 3991
Swap: 8191 0 8191
在重新启动之前,它似乎不会改变top
和ps aux
不表示内存使用量过大。Grails应用程序是我在这台机器上运行的唯一应用程序
也许我误解了这一点,但我担心的是,退出后,记忆似乎无法释放。通常我会怀疑内存泄漏,但一旦java应用程序终止,这怎么可能呢?您实际上误解了命令的输出
Mem
行显示内核当前分配了多少内存;但是,内核会延迟释放内存。如果没有其他进程请求内存,它可能会保留分配的页面(可能是从磁盘读取的内容)
“清除”已用/可用内存的行是-/+buffers/cache
行,您可以在该行中看到内存使用量大致相同
你可以在网上找到一些更详细的解释,例如,你有没有用
ps-elf | grep-java
检查过JVM是否在运行?只是grep-java
在运行:)有趣的是,多次运行和查询应用程序总是会在退出后留下相同的数字(~1034)谢谢,我最好温习一下免费的