我已經在我的 linux 服務器上運行nohup java -jar sample.jar &作為 web 應用程式的后端服務,但服務在幾個小時后自動終止,需要重新運行命令。我想知道是什么原因以及如何解決問題
uj5u.com熱心網友回復:
我通過相同的命令運行 Spring Boot,并且只有少數幾次我看到過這種行為。結果是JVM記憶體不足,崩潰了。當我更改堆大小設定時,它再次堅如磐石。
uj5u.com熱心網友回復:
在 Linux 上,一種可能性是它是oomkiller行程。這會監視似乎觸發過多分頁活動的行程,并向它們發送SIGKILL信號。oom 殺手的目的是防止分頁系統崩潰……這會使整個系統癱瘓。
如果它是殺死您的 Java 應用程式的 oom 殺手,您應該在/var/log/messages或 中看到一條日志訊息/var/log/syslog。
解決方案可能就像減少 Java 應用程式的堆大小一樣簡單,以便它全部適合可用的物理記憶體。或者,如果您的 Java 應用程式的堆使用量一直在增長,您可能需要在應用程式中查找可能的記憶體泄漏。(搜索有關查找 Java 記憶體泄漏的文章...)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/394438.html
下一篇:Jackson陣列反序列化為java:MismatchedInputException:嘗試讀取型別值時出現意外的輸入結束
