[英]Java / Tomcat memory leak in RedHat Linux?
我有一個運行Tomcat的Red Hat盒子,帶有6G內存,我想弄清楚盒子上還剩下多少內存。 問題是,top和jconsole顯示一個數字(大約200M),而系統監視器顯示另一個數字(大約2G)。 有人知道有什么區別嗎?
我不確定這里是否發生內存泄漏,但是內存消耗最大的是tomcat進程,占用了2.2G內存。
屏幕截圖如下:
添加了免費的命令屏幕截圖:
顯然,top告訴您Tomcat僅使用了38%的可用內存。 您的問題(如果有問題)與使用剩余的62%的內存有關。
我懷疑它已用於磁盤塊/文件系統緩存。 (運行free
命令,我希望您會看到“ cached”的較高值,該值的大小與丟失的頁面大致相對應。)
如果您的系統在高速緩存中有大量頁面,那么這是一件好事 。 所有這些緩存的磁盤塊都將使對文件系統的讀取訪問變得方便快捷。 (如果操作系統需要物理頁面來處理更重要的事情……例如正在運行的應用程序……它可以快速從磁盤緩存中回收它們。)
系統監視器顯示了2G [已分配的最大堆大小已分配]的tomcat進程如何使用內存。
在linux上,嘗試將其與顯示當前可用內存的free -m
進行比較。
“ free -t”顯示什么? 我想知道其中是否有一張圖包含緩存的文件系統數據(從某種意義上說,它是用於內存的物理用途,但從某種意義上來說是免費的,可以在必要時隨時清除它們)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.