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)錯,只是顯示加載失敗
5、加載時(shí)看到tomcat 日志報(bào)錯 out of memary
在網(wǎng)上查看資料,問題得到解決
服務(wù)器配置:linux+tomcat
現(xiàn)象:Linux服務(wù)器沒有崩,有瀏覽器中訪問頁面,出現(xiàn)無法訪問的情況,沒有報(bào)4xx或5xx錯誤(假死),并且重啟tomcat后,恢復(fù)正常。
原因:tomcat默認(rèn)最大連接數(shù)(線程數(shù))200個,默認(rèn)每一個連接的生命周期2小時(shí)(7200秒),tomcat使用http 1.1協(xié)議,而http1.1默認(rèn)是長連接。
tomcat接受處理完請求后,socket沒有主動關(guān)閉,因此如果在2小時(shí)內(nèi),請求數(shù)超過200個,服務(wù)器就會出現(xiàn)上述假死現(xiàn)象。
解決方案1
及時(shí)斷開socket
解決方案2
修改tomcat配置文件,修改最大連接數(shù)(增大)
修改server.xml配置文件,Connector節(jié)點(diǎn)中增加acceptCount和maxThreads這兩個屬性的值,并且使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 # 探測次數(shù) net.ipv4.tcp_keepalive_probes=2 # 探測間隔秒數(shù) net.ipv4.tcp_keepalive_intvl=2 編輯完 /etc/sysctl.conf,要重啟network 才會生效 [root@temp /]# /etc/rc.d/init.d/network restart
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Tomcat報(bào)錯: JDBC unregister 解決辦法
這篇文章主要介紹了Tomcat報(bào)錯: JDBC unregister 解決辦法的相關(guān)資料,需要的朋友可以參考下2017-05-05Tomcat在linux環(huán)境中開機(jī)自啟(定時(shí)重啟)的方法
我們經(jīng)常會遇到服務(wù)器斷電或異常,而異常后tomcat中部署的web項(xiàng)目需要我手動去啟動,為此,特別貢獻(xiàn)出Linux環(huán)境中Tomcat開機(jī)自啟的方式供學(xué)習(xí)使用,需要的朋友可以參考下2023-10-10使用TomCat,service輸出臺出現(xiàn)亂碼的解決
本文介紹了解決Tomcat服務(wù)輸出臺中文亂碼問題的兩種方法,第一種方法是修改`logging.properties`文件中的`prefix`和`encoding`參數(shù);第二種方法是配置IDEA的VMoptions和文件編碼設(shè)置,通過這兩種方法,可以有效解決Tomcat服務(wù)輸出臺出現(xiàn)的亂碼問題2025-01-01Tomcat配置虛擬主機(jī)的實(shí)現(xiàn)示例
在Tomcat中配置虛擬主機(jī)允許你通過不同的域名或IP地址訪問同一臺服務(wù)器上的不同Web應(yīng)用,這通常通過編輯Tomcat的配置文件server.xml來實(shí)現(xiàn),本文就來介紹一下,感興趣的可以了解一下2024-11-11Tomcat之web應(yīng)用的目錄組成結(jié)構(gòu)_動力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了Tomcat之web應(yīng)用的目錄組成結(jié)構(gòu),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-07-07Tomcat的卸載和重裝的實(shí)現(xiàn)(圖文)
這篇文章主要介紹了Tomcat的卸載和重裝的實(shí)現(xiàn)(圖文),文中通過圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08