已在應用程序中指定Linux服務器vm參數(Xmx = 3GB,Xms = 3GB)。通過查看堆轉儲,可以看到已經使用了超過2.9 GB的內存。 32 MB內存用於不可訪問的對象。Linux:Java Web應用程序內存不足,無法響應請求但不拋出OOM?
但是,該應用程序沒有拋出OOM,而是停止了響應。所以有必要手動重啓應用程序。
我可以看到許多線程(96)在堆棧跟蹤中監視某個特定對象的監視器。這有幫助嗎? 2.9 GB空間中的大部分空間都被緩存對象佔用,我認爲這是正常的。 MAT僅將這些緩存對象顯示爲泄漏嫌疑人。
試圖找出是什麼讓它不響應,但看到堆轉儲和堆棧跟蹤沒有看到任何特殊的東西。
只是一個想法:如果您指定*初始*堆大小與*最大值*相同,則可以預計(在您的情況下)2.9Gb的利用率。你嘗試過嗎,例如。 '-Xms = 512M'? –