1. 程式人生 > >記一次tomcat自動退出問題

記一次tomcat自動退出問題

set 一句話 ESS 通過 可能 一段 eat memory ces

問題

環境: centos/tomcat8/jdk1.8

最近遇到部署在服務器的tomcat總是過一段時間就自動結束進程 ;
通過監控tomcat 日誌文件(tail -f ./logs/catalina.out)並沒有發現有任何異常

分析解決

  • 通過網絡搜索是因為可能是由於Linux OOM Killer導致
  • 監控/var/log/messages 發現確實由於這種原因
tail -f /var/log/messages
...
Jun 17 15:31:00 robinjzy kernel: Out of memory: Kill process 17404 (java) scd
Jun 17 15:31:00 robinjzy kernel: Killed process 17404 (java) total-vm:235268ile-rss:0kB, shmem-rss:0kB
...

Linux OOM Killer的描述中有這樣一句話
Any particular process leader may be immunized against the oom killer if the value of its /proc//oomadj is set to the constant OOM_DISABLE (currently defined as -17).

如果將其/proc//oomadj的值設置為常量OOM_DILD(當前定義為-17),則可以對任何特定的進程領導人進行OOM殺手免疫。

依此做為解決的依據;

解決


  • 參考:https://backdrift.org/oom-killer-how-to-create-oom-exclusions-in-linux

記一次tomcat自動退出問題