Java

服務剛剛停止

  • November 7, 2017

我有一個嚴重的生產問題。在 OpenJDK 上執行 java 應用程序的服務只是在看似隨機的時間停止。

手動呼叫時,它會正確啟動:

sudo /etc/init.d/name start

但後來不知過了多久,程序突然不存在了。在最後一次出現後大約 3 小時開始。

控制台輸出被重定向到日誌文件。那裡找不到解釋。同樣在應用程序日誌中(通過 Java 日誌框架)。

服務日誌中沒有任何有趣的內容:

journalctl -u name.service

全系統找不到Java崩潰報告文件

sudo find / -name 'hs_err*'

我還能在哪裡尋找解釋?這是非常緊急的 - 任何幫助將不勝感激!

應用程序在沒有更多日誌的情況下消失的最可能原因是系統記憶體不足。

您可以使用確認這一點

$ grep -i -A20 "Out of memory" /var/log/syslog

這通常由於以下原因之一在您的普通伺服器上發生:

  1. 您的應用程序存在記憶體洩漏,並且不斷使用越來越多的記憶體。
  2. 您的應用程序在正常操作期間使用了太多記憶體,但您只注意到當您的虛擬化框架將預置記憶體限制為較低的保證時。
  3. 其他一些應用程序正在使用過多的 RAM。這可能是您的應用程序使用的配置錯誤的 SQL 伺服器。請記住:oom 殺手並不一定會殺死導致記憶體不足情況的應用程序(而是在某種程度上促成這種情況的應用程序)。

引用自:https://serverfault.com/questions/882191