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

rma*_*nus 5 java memory tomcat memory-leaks memory-management

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

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

屏幕截图如下: 替代文字 替代文字 替代文字 替代文字 替代文字

添加了免费命令截图: 替代文字

Ste*_*n C 4

显然,top 告诉您 Tomcat 仅使用了 38% 的可用内存。您的问题(如果有问题)是使用剩余 62% 内存的任何内容。

我怀疑它被用于磁盘块/文件系统缓存。(运行该free命令,我希望您应该看到“缓存”的高值,其大小大致对应于丢失的页面。)

如果您的系统在缓存中有大量页面,那么这是一件好事。所有这些缓存的磁盘块将使对文件系统的读取访问变得又好又快。(如果操作系统需要物理页来执行更重要的操作……例如运行应用程序……它可以快速从磁盘缓存中回收它们。)