最近使用springboot開發了一個ip代理的程序,今天放到阿里雲服務器上運行,多次出現應用運行突然停止的問題。
使用free -h 查看內存使用完全正常。重新運行監視CPU使用也正常。沒有出現堆內存溢出,棧內存異常,內存異常等信息。
百思不得其解,然后就搜索了關鍵字springboot killed,在stack overflow上看到
之后,看了阿里雲服務器的swap 空間,果然為0。最后使用以下命令添加了swap為物理內存的兩倍。
1.dd if=/dev/zero of=/var/swap bs=1M count=2048 #swap分區為2G 2.mkswap /var/swap #建立swap的文件系統 3.啟用交換分區文件:swapon /var/swap #啟用swap文件
最后再重新運行springboot程序,就不會重新出現突然停止的情況了。
由此推斷,springboot程序突然停止運行,是系統原因。應該是程序消耗內存的行為被系統監控到,系統中斷了程序的運行,是什么行為不清楚,可能是開啟的線程過多消耗太快太大了吧。。。