Linux服務(wù)器中由于內(nèi)存不足導(dǎo)致tomcat自動關(guān)閉解決方案

服務(wù)器環(huán)境:

? 騰訊云1核2G

? 操作系統(tǒng):CentOS7

最近將項目部署到服務(wù)器后發(fā)現(xiàn)tomcat總是過一段時間會自動關(guān)掉蘸鲸。

1.查找原因

查看系統(tǒng)日志

cat /var/log/kern.log

發(fā)現(xiàn)如下內(nèi)容:

Oct 23 06:43:35 localhost kernel: [30799661.517422] Out of memory: Kill process 3272 (java) score 198 or sacrifice child
Oct 23 06:43:35 localhost kernel: [30799661.520502] Killed process 3272 (java) total-vm:2543564kB, anon-rss:392108kB, file-rss:0kB

2. 原因分析

原因分析:linux會定時檢查系統(tǒng)內(nèi)存大小,發(fā)現(xiàn)剩余內(nèi)存過小時會自動優(yōu)先清理占用內(nèi)存較大的進(jìn)程起便,因此tomcat進(jìn)程經(jīng)常會被系統(tǒng)清除掉

3.解決方法

  1. 最簡單的方法就是直接對云服務(wù)器內(nèi)存擴(kuò)容棚贾,一勞永逸
  2. 另一種方法就是設(shè)置一個定時任務(wù)執(zhí)行tomcat監(jiān)控腳本,每隔一段時間定時檢查tomcat進(jìn)程運(yùn)行狀態(tài)榆综,若檢查到進(jìn)程不存在慎颗,則自動重啟tomcat

4.方法2步驟

(1)創(chuàng)建腳本文件tomcatMonitor.sh

# 設(shè)置java環(huán)境變量叼耙,不設(shè)置的話運(yùn)行startup.sh會報錯
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/java/jdk/bin
JAVA_HOME=/usr/local/java/jdk
CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
PATH=$PATH:$JAVA_HOME/bin

# 獲取tomcat進(jìn)程ID(其中[grep -w 'tomcat']代碼中的tomcat需要替換為你的tomcat文件夾名) 例如我的tomcat目錄為/home/ubuntu/tomcat9
TomcatID=$(ps -ef |grep tomcat |grep -w 'tomcat9'|grep -v 'grep'|awk '{print $2}')

# tomcat啟動程序(這里注意tomcat實際安裝的路徑)
StartTomcat=/home/ubuntu/tomcat9/bin/startup.sh
TomcatCache=/home/ubuntu/tomcat9/work

#定義要監(jiān)控的頁面地址
WebUrl=http://localhost:8080

#日志輸出
GetPageInfo=/home/ubuntu/TomcatMonitor.Info
TomcatMonitorLog=/home/ubuntu/TomcatMonitor.log
Monitor()
{
    echo "[info]開始監(jiān)控tomcat...[ $(date +'%F %H:%M:%S') ]"

    if [ $TomcatID ];then #這里判斷Tomcat進(jìn)程是否存在
        echo "[info]當(dāng)前tomcat進(jìn)程ID為:$TomcatID,繼續(xù)檢測頁面..."
        # 檢測是否啟動成功(成功的話頁面會返回狀態(tài)"200")
        TomcatServiceCode=$(curl -s -o $GetPageInfo -m 10 --connect-timeout 10 $WebUrl -w %{http_code})
        # 這里檢測狀態(tài)碼為302是因為自己的項目訪問首頁會重定向鳞上,所以狀態(tài)碼為302
        if [ $TomcatServiceCode -eq 302 ];then
            echo "[info]頁面返回碼為$TomcatServiceCode借嗽,tomcat啟動成功,測試頁面正常"
        else
            echo "[error]tomcat頁面出錯判沟,請注意...狀態(tài)碼為$TomcatServiceCode耿芹,錯誤日志已輸出到$GetPageInfo"
            echo "[error]頁面訪問出錯,開始重啟tomcat"
            kill -9 $TomcatID # 殺掉原tomcat進(jìn)程
            sleep 3
            rm -rf $TomcatCache # 清理tomcat緩存
            $StartTomcat
        fi
    else    
        echo "[error]tomcat進(jìn)程不存在!tomcat開始自動重啟..."
        echo "[info]$StartTomcat挪哄,請稍候..."
        rm -rf $TomcatCache
        # 啟動tomcat
        $StartTomcat
    fi
    echo "--------------------------"
}
# 輸出到日志文件
Monitor>>$TomcatMonitorLog

(2)對腳本文件授權(quán)

chmod 777 tomcatMonitor.sh

(3)將腳本文件加入到定時任務(wù)中

# 編輯定時任務(wù)
crontab -e

添加如下內(nèi)容

#  五個*分別對應(yīng)
# *       *       *      *      *        command
# minute   hour    day   month   week    command
# 全為*表示每分鐘執(zhí)行一次
* * * * * /home/ubuntu/tomcatMonitor.sh

保存并退出

(如果出現(xiàn)以下內(nèi)容吧秕,則輸入3進(jìn)入vim編輯模式再進(jìn)行編輯)

選擇編輯器.png

具體crontab命令參考:https://www.cnblogs.com/zoulongbin/p/6187238.html

(4)查看任務(wù)執(zhí)行情況

#查看定時任務(wù)
crontab -l
# 查看自定義日志文件
tailf /home/ubuntu/TomcatMonitor.log

輸出如下內(nèi)容表示定時任務(wù)正在執(zhí)行


tomcat成功.png
啟動.png
失敗1.png

參考博客:

https://www.cnblogs.com/zoulongbin/p/6187238.html

https://blog.csdn.net/zhang41228/article/details/79860030

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市迹炼,隨后出現(xiàn)的幾起案子砸彬,更是在濱河造成了極大的恐慌,老刑警劉巖斯入,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件砂碉,死亡現(xiàn)場離奇詭異,居然都是意外死亡刻两,警方通過查閱死者的電腦和手機(jī)增蹭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來磅摹,“玉大人滋迈,你說我怎么就攤上這事霎奢。” “怎么了饼灿?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵椰憋,是天一觀的道長。 經(jīng)常有香客問我赔退,道長,這世上最難降的妖魔是什么证舟? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任硕旗,我火速辦了婚禮,結(jié)果婚禮上女责,老公的妹妹穿的比我還像新娘漆枚。我一直安慰自己,他們只是感情好抵知,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布墙基。 她就那樣靜靜地躺著,像睡著了一般刷喜。 火紅的嫁衣襯著肌膚如雪残制。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天掖疮,我揣著相機(jī)與錄音初茶,去河邊找鬼。 笑死浊闪,一個胖子當(dāng)著我的面吹牛恼布,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播搁宾,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼折汞,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了盖腿?” 一聲冷哼從身側(cè)響起爽待,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎奸忽,沒想到半個月后堕伪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡栗菜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年欠雌,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片疙筹。...
    茶點(diǎn)故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡富俄,死狀恐怖禁炒,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情霍比,我是刑警寧澤幕袱,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站悠瞬,受9級特大地震影響们豌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜浅妆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一望迎、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧凌外,春花似錦辩尊、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至疮薇,卻和暖如春胸墙,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背按咒。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工劳秋, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人胖齐。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓玻淑,卻偏偏與公主長得像,于是被迫代替她去往敵國和親呀伙。 傳聞我的和親對象是個殘疾皇子补履,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評論 2 349