Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
RedHat Linux中的Java/Tomcat内存泄漏?_Java_Memory_Tomcat_Memory Leaks_Memory Management - Fatal编程技术网

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

RedHat Linux中的Java/Tomcat内存泄漏?,java,memory,tomcat,memory-leaks,memory-management,Java,Memory,Tomcat,Memory Leaks,Memory Management,我有一个运行Tomcat的6G内存的红帽盒,我正试图弄清楚盒子上还有多少内存。问题是,top&jconsole显示的是一个数字(大约200米),而系统监视器显示的是另一个数字(大约2G)。有人知道有什么区别吗 我不确定这里是否发生内存泄漏,但最高内存消耗者是占用2.2G内存的tomcat进程 截图如下: 添加了免费命令屏幕截图: 系统监视器显示tomcat进程如何使用内存,该进程为2G[分配您设置的最大堆大小] 在linux上,尝试将其与显示当前可用内存的free-m进行比较。free-t显示

我有一个运行Tomcat的6G内存的红帽盒,我正试图弄清楚盒子上还有多少内存。问题是,top&jconsole显示的是一个数字(大约200米),而系统监视器显示的是另一个数字(大约2G)。有人知道有什么区别吗

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

截图如下:

添加了免费命令屏幕截图:

系统监视器显示tomcat进程如何使用内存,该进程为2G[分配您设置的最大堆大小]


在linux上,尝试将其与显示当前可用内存的
free-m
进行比较。

free-t显示什么?我想知道其中是否有一个数字包含了缓存的文件系统数据(从物理意义上说,它是用来存储的,但从必要时可以随时清除的意义上说,它是免费的)。

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

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


如果您的系统缓存中有大量页面,这是一件好事。所有这些缓存的磁盘块将使您的文件系统的读取访问又好又快。(如果操作系统需要物理页面来完成更重要的任务,比如运行应用程序,它可以快速从光盘缓存中回收这些页面。)

感谢Stephen C,我添加了免费命令屏幕截图。我想我不必担心,因为缓存是一件好事。有没有办法找出哪个进程占用了缓存?@black rocky-没有。操作系统不会将磁盘块缓存中的内容与任何进程相关联。但这并不重要,因为正如我所说,缓存中的页面将按需回收。