首页 文章

RedHat Linux中的Java / Tomcat内存泄漏?

提问于
浏览
5

我有一个运行Tomcat的6G内存的Red Hat盒子,我正在试图弄清楚我在盒子上留下了多少内存 . 问题是,top&jconsole显示一个数字(大约200M),系统监视器显示不同的数字(大约2G) . 有人知道有什么区别吗?

我不确定这里是否发生内存泄漏,但最高内存消费者是一个tomcat进程,占用2.2G的内存 .

屏幕截图如下:
alt text

alt text

alt text

alt text

alt text

添加了免费命令截图:
alt text

3 回答

  • 4

    显然,top告诉你Tomcat只使用了38%的可用内存 . 您的问题(如果有问题)是使用剩余62%的内存 .

    我怀疑它被用于磁盘块/文件系统缓存 . (运行 free 命令,我希望您应该看到"cached"的高值,其大小与缺少的页面大致相对应 . )

    如果您的系统在缓存中有大量页面,则它是 GOOD THING . 所有这些缓存的磁盘块都可以快速,快速地对您的文件系统进行读取访问 . (如果操作系统需要物理页面来处理更重要的事情......比如运行应用程序......它可以快速从光盘缓存中回收它们 . )

  • 1

    系统监视器显示tomcat进程如何使用内存,即2G [已分配的最大堆大小已分配] .

    在linux上尝试将它与 free -m 进行比较,后者显示当前的空闲内存 .

  • 1

    “free -t”显示什么?我想知道其中一个数字是否包括缓存的文件系统数据(在某种意义上它是用于内存的意义上的内存,但在某种意义上它是免费的,如果有必要可以在任何时候清除它) .

相关问题