tomcat+java的web程式持續佔cpu問題除錯
現象:
在tomcat中部署java的web應用程式,過一段時間後出現tomcat的java程序持續佔用cpu高達100%,導致web程式訪問受阻。
可能原因分析:
可能程式確實在進行資料計算;或程式進入死迴圈;
解決方法:
1、先用top檢視佔用cpu的程序id
2、再用ps -ef | grep PID定位具體的程序主體;如是否是tomcat啟動的java程式
3、用ps -mp pid -o THREAD,tid,time打印出該程序下的執行緒佔用cpu情況
找到了耗時最高的執行緒28802,佔用CPU時間快兩個小時了!
4、其次將需要的執行緒ID轉換為16進位制格式:
printf "%x\n" tid
5、最後列印執行緒的堆疊資訊:
jstack pid |grep tid -A 30
找到出現問題的程式碼,並分析具體函式中是否有可能出現死迴圈的程式碼段。
通常問題出現在while, for之類的迴圈程式碼片段。
相關推薦
tomcat+java的web程式持續佔cpu問題除錯
現象: 在tomcat中部署java的web應用程式,過一段時間後出現tomcat的java程序持續佔用cpu高達100%,導致web程式訪問受阻。 可能原因分析: 可能程式確實在進行資料計算;或程式進入死迴圈; 解決方法: 1、先用top檢視佔用cpu的程序id
線上Java程式導致伺服器CPU佔用率過高的問題排除過程
1、故障現象 客服同事反饋平臺系統執行緩慢,網頁卡頓嚴重,多次重啟系統後問題依然存在,使用top命令檢視伺服器情況,發現CPU佔用率過高。 2、CPU佔用過高問題定位 2.1、定位問題程序 使用top命令檢視資源佔用情況,發現pid為14063的程序佔用了大量的CPU
Java程式導致伺服器CPU佔用率過高的問題
1、故障現象 客服同事反饋平臺系統執行緩慢,網頁卡頓嚴重,多次重啟系統後問題依然存在,使用
如何在Windows Server 2008伺服器中把Tomcat啟動程式新增到服務中
在部署測試伺服器時,有的學員問Tomcat作為應用伺服器使用,但部署在windows server 2008環境下後,啟動應用需要在介面上留下一個CMD視窗,有時可能會被別人誤關閉。還不能自啟動,遇到這樣的問題很是頭疼,那麼接下來我們將講一個好用的方法,該方法將啟動新增到服務中,能保證服務不會被別人誤停。
微信小程式Push場景本地除錯方法
微信小程式Push場景本地除錯方法 問題描述 開發微信小程式時,會出現正常進入沒問題,但是通過 push 進入出現 bug 的場景,這時就尷尬,總不能每次為了測試 push 場景而去稽核通過,以下是在本地除錯 push 場景的方法; 解決方案 開發者工具新增
記憶體和cpu除錯
buddyinfo 小記憶體越多,碎片越多 perf 可以使用perf進行cpu佔用率進行分析 如下程式碼中,函式AA死迴圈,預期會佔用大量CPU資源 #include<stdio.h> #include<stdl
我是初學者編起的程式不能生成除錯能幫忙指出問題並修改
C#實現一個實時平面定位功能(自定義地圖匯入)需要哪些知識初學者的一個問題關於string.copytoC#實現一個實時平面定位功能(自定義地圖匯入)需要哪些知識初學者的一個問題關於string.copyto warningiccpnotrecognizingknownsrg
對於多執行緒程式,單核cpu與多核cpu是怎麼工作的
此文中的大部分資料來自於網路上,我只是覺得把有道理的整理一下,方便以後查閱。 1.多執行緒在單核和多核CPU上的執行效率問題的討論a1: 多執行緒在單cpu中其實也是順序執行的,不過系統可以幫你切換那個執行而已,其實並沒有快(反而慢)多個cpu的話就可以在兩個cpu中同時執行了.....
linux下檢視某一程式所佔記憶體
原文:https://blog.csdn.net/rickiyeat/article/details/70230253 第一種方式 top -p 程序號 1 [[email protected] micro-service]$ top -p 20490 top
定位Java程式中佔用cpu資源最多執行緒
在程式設計時,有時候有些問題並不會暴露出來,往往等專案上線之後,突然就暴露出一些問題,比如網站相應慢,或者突然崩潰。 當然,網站相應慢可能是多方面的原因,硬體、軟體、cpu,io,網路都是可能的點。 本篇文章從cpu角度來分析佔用cpu最多執行緒從而導致網站
eclipse中執行tomcat提示埠被佔的4種解決方案
今天碰到一個問題,在eclipse中執行一個程式,eclipse裡面的tomcat一啟動就報錯說端口占用,eclipse完全不能聯網,maven不能下載依賴包,不能建立maven專案,不能安裝外掛,然後我查看了本機的端口占用情況也沒有看到我要用的埠被別的應用佔用,最後…….折騰了好久,終於弄好了,分享如下:錯
Mac系統 mds、mds_stores、mdworker 佔cpu很高,以及這些程序是幹啥的
忽然發現這個mds、mds_stores、mdworker 佔cpu很高,然後就搜尋了一下,說是可以使用下面的命令給關掉。 sudo mdutil -a -i off 但是關掉之後,有沒有啥負面影響呢,這個東西是幹嘛呢?不少文章還提供了這個開啟的命令 sudo mdutil -a -
一個javaWeb程式設計師做一個桌面小應用的總結
CSDN的部落格編輯器太讓人受不了,原本好好的格式排版,粘上去全亂套了,怎麼調怎麼亂,今天試試Markdown,如果效果不錯,今後的部落格都用Markdown寫 最近專案要求我做一個工具 要求: 做一個工具,要能儲存系統地址、使用者名稱、密碼,實
nginx tomcat javaweb部署
問題背景: 伺服器,windows伺服器,實際運行了一個 windows server 12,繫結域名,用iis可以嗎,想著預設用 80埠,目前伺服器上,綁著一個域名,通過iis是否可以繫結很多域名,
Eclipse中執行MapReduce程式控制臺無除錯資訊-log4j
在Eclipse中執行MapReduce程式,引數設定都正確的情況下,執行時控制檯的輸出為: log4j:WARN No appenders could be found for logger (or
微信小程式——上線後如何除錯
線上版本沒有除錯 由於博主也是遇到了同樣的問題,偶然間發現同事那裡顯示了除錯,所以新生疑問,為何博主沒有??? 嘗試了很久發現,其實只需要如下操作則可以開啟除錯: 只需要在開發版本中開啟除錯,然後
利用MyEclipse開發JavaWeb程式
1.安裝好MyEclipse軟體後,我們需要先對它進行兩方面系統配置。 1.1 先配置MyEclipse預設使用的JRE。 開啟MyEclipse-Window-Perferences-Java-
手摸手聊聊小程式持續整合Jenkins
本文首發在我的github部落格 github.com/Pasoul/blog… ,感興趣的同學可以點個star,不要迷路哦~ 我們為什麼要持續整合? 試想以下兩個場景: 場景一:你在開發新功能的時候,同事A找你要小程式體驗二維碼,於是你只能: git stash // 快取本地修改 git
自定義VS程式異常處理及除錯Dump檔案(一)
1. Dump檔案 1. Dump檔案介紹 Dump檔案(Dump File),也叫轉儲檔案,以.DMP為檔案字尾。dump檔案是程序在記憶體中的映象檔案,通過轉換然後儲存成以.DMP字尾的檔案。dump檔案根據儲存時的選項不同,會生成不同大小的檔案,其
JavaWeb程式(Spring Boot)打包成的Jar檔案,轉成exe檔案
注:此方式需要外部 JRE 一、下載Java轉Exe檔案工具(exe4j) 地址:https://exe4j.apponic.com/ 破解碼:L-g782dn2d-1f1yqxx1rv1sqd 二、Jar 轉 Exe 步驟