tomcat服務器一直自動關,項目在tomcat里運行一段時間總是自動崩掉的問題排查與解決...


最近的檢驗系統上線一段時間后,發現系統訪問不了,tomcat總是會自動崩掉,一般遇到這種問題,程序員的第一反應都肯定是內存溢出。

確實是,但是java里內存分好幾種,堆內存、棧內存、靜態內存區等等,下面記錄下我的排查問題步驟,以及解決方法。

一、查看服務器內存使用情況。

看看tomcat崩潰的時候,tomcat進程使用內存是否明顯占用較多。

二、查看tomcat日志

catalina.201X-XX-XX.log

這個日志記錄tomcat每次啟動的情況。

localhost.201X-XX-XX.log

這個日志記錄tomcat里各個webapp運行情況的日志。

 

 

localhost_access_log.201X-XX-XX.txt

這個日志記錄每次url訪問的情況。

 

 

看日志可以明白,是報java.lang.StackOverflowError錯誤了,這個是棧內存溢出,然后還可以看到是在testServlet里的75行出錯了。

這一行是啥呢?

out.println(sss.toString());

sss是一個相對很大的方法內的局部變量,一兩次訪問這個url可能不會有啥大的感覺,最多稍微慢點,但是並發訪問多一點,內存溢出就不可避免了。

三、解決方法

1.增大tomcat的棧內存。

2.改代碼,避免太大的局部變量。

四、以后如何監控tomcat運行情況

使用jdk自帶的JvisualVM工具,這個工具很好用,能監控各種java進程的情況,tomcat、eclipse等等,不光能監控本機的,而且還能監控遠程的服務器。

 

 

java程序運行一段時間之后停止

原創文章,未經作者允許,禁止轉載!!!!!!! 如何用java是一段代碼運行一段時間之后自動停止運行? 就拿打印隨機函數的代碼來做例子吧,讓程序隨機打印1-10的數字,打印十秒鍾后停止打印: publ ...

【生產環境】Tomcat運行一段時間后訪問變慢分析歷程

環境運行一天或者幾天,網站訪問就很卡,手機端app訪問頁面出現白屏.Tomcat運行一段時間后訪問變慢,但是cpu,內存都正常.日志也是發現不了啥.... 問題的原先分析 1.環境配置(cpu,內存, ...

tomcat運行一段時間后報錯"Too many open files"

tomcat運行一段時間后報打開太多文件錯誤:Too many open files  查看當前進程的文件打開數: lsof -n |awk '{print $2}'|sort|uniq -c |so ...

網站運行一段時間后就無法訪問,重啟Tomcat才能恢復

網站運行一段時間后就無法訪問,重啟Tomcat才能恢復出現這種情況,很可能是以下幾種情況:1.超過數據庫連接池上限2.並發數達到上限3.內存溢出具體還是需要通過打印的日志進行具體分析.解決方法1.如果 ...

WCF服務運行一段時間后客戶端無法連接WCF服務的解決辦法 (轉)

WCF服務運行一段時間后客戶端無法連接WCF服務的解決辦法 (轉) Windows Communication Foundation (WCF)是Microsoft為構建面向服務的應用提供的分布式通信 ...

k8s的flannel的pod運行一段時間init error

問題現象 使用Kubeadm部署的flannel網絡運行一段時間后,提示init:Error錯誤,查看具體的信息如下: [root@node1 ~]# kubectl describe pod kub ...

Pycharm 在Windows下出現閃退問題(即是在運行一段時間后,自己就退出崩掉了)的解決方法

Pycharm 在Windows下出現閃退問題(即是在運行一段時間后,自己就退出崩掉了)的解決方法 最近自己下載了最新版本的Pycharm,運行程序過程中發現,在運行一段時間后(比如10幾分鍾),Py ...

在Tomcat中部署Web項目的操作方法,maven項目在Tomcat里登錄首頁報404

maven項目在Tomcat里登錄首頁報404, 解決:編輯conf/server.xml進行配置里的標簽里的path.

mysql5.6運行一段時間之后網站頁面出現亂碼解決辦法

mysql5.6運行一段時間之后網站頁面出現亂碼,怎么都打不開,經過排查之后,知道是數據庫默認字符集出問題了,在此分享給大家經驗. 在mysql5.6配置文件:my.ini 找到: 添加如下內容: [ ...

隨機推薦

std::string的split函數

剛剛要找個按空格分離std::string的函數, 結果發現了stackoverflow上的這個問題. 也沒仔細看, 直接拿來一試, 靠, 不對啊, 怎么分離后多出個空字符串, 也就是 "a ...

git log 格式化輸出

Git log --graph --pretty=format: '%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)& ...

atitit. 解決org.hibernate.SessionException Session is closed

atitit. 解決org.hibernate.SessionException Session is closed   #--現象:: org.hibernate.SessionException ...

在eclipse中安裝freemarker插件及html使用freemarker編輯器

freemarker模板文件使用jboss tools下提供的FreeMarker IDE,在線安裝的方法是:Help –> Install New Software 點擊and,再出來的對話框 ...

Android-MediaProvider數據庫模式


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM