tomcat內存泄漏存入dump文件


  很多tomcat進程退出(或者進程假死),都是由於頻繁的拋出OutOfMemeoryError導致的。

  為了讓tomcat退出前或者發生OutOfMemeoryError時自動dump堆棧信息,方便事后排查問題,我們可以做如下操作:

  1、 在tomcat啟動參數中加入兩個參數 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/export/home/tomcat/domains/server2/oom.hprof

  2、 重啟tomcat

  參數說明

  (1)-XX:+HeapDumpOnOutOfMemoryError 表示當JVM發生OOM時,自動生成DUMP文件。

  (2)-XX:HeapDumpPath=存儲文件/目錄 表示生成DUMP文件的路徑

 

//***********************************     完美分割線    *********************************************//

-XX:+HeapDumpOnOutOfMemoryError

該配置會把快照保存在user.dir中,比如你用tomcat啟動,那應該是在tomcat的bin目錄下

當然,也可以通過XX:HeapDumpPath=./java_pid.hprof來顯示指定路徑

 此外,OnOutOfMemoryError參數允許用戶指定當出現oom時,指定某個腳本來完成一些動作,比如郵件知會。。。

$ java -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/heapdump.hprof -XX:OnOutOfMemoryError ="sh ~/cleanup.sh" MyApp


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM