Tomcat假死的原因分析及解決方案
Tomcat假死的原因分析及解決
在參與搜人項(xiàng)目時(shí),遇到tomcat假死的問題。
當(dāng)時(shí)情況:
1、ps tomcat正在運(yùn)行
2、用netstat 查看8080連接情況,有大量的close-wait,還有一些等待連接的狀態(tài)
3、查看服務(wù)器的使用情況,沒有過多的消耗內(nèi)存和CPU
4、重新加載界面,沒有報(bào)錯(cuò),只是顯示加載失敗
5、加載時(shí)看到tomcat 日志報(bào)錯(cuò) out of memary
在網(wǎng)上查看資料,問題得到解決
服務(wù)器配置:linux+tomcat
現(xiàn)象:Linux服務(wù)器沒有崩,有瀏覽器中訪問頁(yè)面,出現(xiàn)無法訪問的情況,沒有報(bào)4xx或5xx錯(cuò)誤(假死),并且重啟tomcat后,恢復(fù)正常。
原因:tomcat默認(rèn)最大連接數(shù)(線程數(shù))200個(gè),默認(rèn)每一個(gè)連接的生命周期2小時(shí)(7200秒),tomcat使用http 1.1協(xié)議,而http1.1默認(rèn)是長(zhǎng)連接。
tomcat接受處理完請(qǐng)求后,socket沒有主動(dòng)關(guān)閉,因此如果在2小時(shí)內(nèi),請(qǐng)求數(shù)超過200個(gè),服務(wù)器就會(huì)出現(xiàn)上述假死現(xiàn)象。
解決方案1
及時(shí)斷開socket
解決方案2
修改tomcat配置文件,修改最大連接數(shù)(增大)
修改server.xml配置文件,Connector節(jié)點(diǎn)中增加acceptCount和maxThreads這兩個(gè)屬性的值,并且使acceptCount大于等于maxThreads:
protocol="org.apache.coyote.http11.Http11NioProtocol"
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" acceptCount="500" maxThreads="400" />解決方案3
修改linux的TCP超時(shí)時(shí)間(socket生命周期)限制
vi /etc/sysctl.conf # Decrease the time default value for tcp_fin_timeout connection net.ipv4.tcp_fin_timeout = 30 # Decrease the time default value for tcp_keepalive_time connection net.ipv4.tcp_keepalive_time = 1800 # 探測(cè)次數(shù) net.ipv4.tcp_keepalive_probes=2 # 探測(cè)間隔秒數(shù) net.ipv4.tcp_keepalive_intvl=2 編輯完 /etc/sysctl.conf,要重啟network 才會(huì)生效 [root@temp /]# /etc/rc.d/init.d/network restart
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
親測(cè)有效解決Tomcat啟動(dòng)提示錯(cuò)誤:At?least?one?JAR?was?scanned?for?T
這篇文章主要介紹了Tomcat啟動(dòng)提示錯(cuò)誤:At?least?one?JAR?was?scanned?for?TLDs?yet?contained?no?TLDs的問題及解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-05-05
使用IDEA創(chuàng)建Web項(xiàng)目并發(fā)布到tomcat的操作方法
這篇文章主要介紹了使用IDEA創(chuàng)建Web項(xiàng)目并發(fā)布到tomcat的操作方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-05-05
解決Tomcat的maxPostSize屬性的配置需要注意的問題
這篇文章主要介紹了解決Tomcat的maxPostSize屬性的配置需要注意的問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07
Tomcat 檢測(cè)內(nèi)存泄漏實(shí)例詳解
這篇文章主要介紹了 Tomcat 檢測(cè)內(nèi)存泄漏實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2016-12-12
Tomcat的卸載和重裝的實(shí)現(xiàn)(圖文)
這篇文章主要介紹了Tomcat的卸載和重裝的實(shí)現(xiàn)(圖文),文中通過圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
IDEA部署項(xiàng)目到tomcat運(yùn)行成功但是頁(yè)面404的兩種原因分析
這篇文章主要給大家介紹了關(guān)于IDEA部署項(xiàng)目到tomcat運(yùn)行成功但是頁(yè)面404的兩種原因,這是最近在使用IDEA進(jìn)行開發(fā)測(cè)試時(shí)遇到一個(gè)問題,需要的朋友可以參考下2023-08-08
解決Tomcat啟動(dòng)失敗:嚴(yán)重?[main]?org.apache.catalina.util.LifecycleB
這篇文章主要介紹了解決Tomcat啟動(dòng)失敗:嚴(yán)重?[main]org.apache.catalina.util.LifecycleBase.handleSubClassException?初始化組件失敗問題的方法,希望可以幫助到你2023-03-03

