java專案問題排查
我之前遇到過好幾次程式打不開,程序存在;後來多次排查是因為程式碼的原因造成的;查詢資料太多造成了堵塞等;
我們可以從以下幾個方面去查:
1.程序是否存在:jps
2.匯出堆疊資訊:jmap jhat
3.定位執行緒堆疊,根據堆疊資訊我們可以定位到具體程式碼,在jvm調優中使用的比較多;
記下來我們詳細操作一下;
1),查詢對應程式的程序號pid
2)生成一個堆疊資訊:jmap -dump:format=b,file=heapdump.hprof Pid
生成檔案heapdump.hprof;
deadlock:死鎖;
Runnable:執行中;
Waiting on condition:等待資源
Waiting on monitor entry :等待獲取監視器;
Suspended:暫停
Object.wait()/TIMED_WAITING:物件等待中
Blocked:阻塞
Parked:停止
3)jstack -l PID >> jstack.txt 對jvm使用情況實時監控;
綜合兩個檔案我們可以找道到底是哪個檔案在我們專案中作怪;
其實針對於heapdump.hprof檔案有專門的一個分析軟體;可以看到那個程序所佔專案比例較大,就可以快速判斷;需要這個的可以留言郵箱;互相學習
相關推薦
Java專案排查cpu負載高
背景 我負責的其中一個專案在空負載的情況下,CPU佔用率依然保持著100%左右,線上、測試、開發的服務都一樣;是什麼導致的呢?在開發環境我查看了請求流量,這個流量可以忽略但CPU佔用率一直在60%-100%之間浮動。 分析問題 流量可以忽略,但CPU佔用依然極其高說明不是請求多導致的資源佔用,原
java專案問題排查
我之前遇到過好幾次程式打不開,程序存在;後來多次排查是因為程式碼的原因造成的;查詢資料太多造成了堵塞等; 我們可以從以下幾個方面去查: 1.程序是否存在:jps 2.匯出堆疊資訊:jmap jhat 3.定位執行緒堆疊,根據堆疊資訊我們可以定位到具體程式碼,在jvm調優中使用的比較多;
一次排查Java專案記憶體洩漏的過程
發現問題 公司自己維護的服務三四個,有的服務還分多個節點,自己也有幾個私人伺服器,所以為了能實時知道各個伺服器的情況,就使用ServerStatus做了個雲探針,功能很簡單,能實時的監控每個伺服器的記憶體、cpu、硬碟、流量的使用情況,如下 雖然只有幾個
Shiro入門一:基於java專案,初識Shiro
在看了兩天的《跟我學Shiro》之後,針對大佬的部落格原始碼來梳理一下對Shiro的簡單理解。 《跟我學Shiro》pdf上傳兩次都失敗了,上傳成功之後再貼出來分享給需要的同學。 首先是shiro-permission.ini檔案的配置: 裡面包含了使用者和許可權 [use
Intellij Idea 12 將java專案打包成jar
安卓入門教程: 開發環境搭建 http://blog.csdn.net/juyangjia/article/details/9471561 HelloWorld http://blog.csdn.net/juyangjia/article/detai
nodejs連線Access資料庫,出現Error: Spawn C:\WINDOWS\SysWOW64\cscript.exe error Java專案生成可執行jar包、exe檔案以及在Windows下的安裝檔案
因為集成了第三方的資料庫,所以需要獲取資料庫的資料 使用 var connection = ADODB.open('Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+config.id_path+';');  
6 個 Java 專案的 UML 反向工程工具
文章轉載自:開源中國社群 [http://www.oschina.net] http://www.oschina.net/news/32803/6-java-to-uml-tools 將 Java 專案轉成結構清晰的 UML 類圖,可以讓我們更輕
Java專案中有關路徑的獲取方法
1、用Jsp獲取 1-1、獲取檔案的絕對路徑 String file=“檔案”;(例如:data.mdb) String path=application.getRealPath(file); 結果: E:\java_web\workspace.metadata.plugins\or
gradle在Java專案構建引數詳細解釋
如果需要了解更多細節或答疑,請關注我的公眾號: 總結整理Java專案建立時常見gradle引數的解釋與用法。 首先通過Idea的spring initializr新建一個Gradle構建的Java任務,隨便選擇幾個springboot元件: 選擇Finish,專案新建
java專案打包加版本號清理快取二
一篇我們主要介紹了在程式碼中怎麼處理可以做到清理快取的效果,這篇我們說說在打包的時候加版本號,意義上就是給靜態資源加版本號,意思我們每次打包的靜態頁面都是一個全新的頁面,通過這種方式來達到清理快取的目的;為達目標不擇手段嗎! 1.maven專案打包增加版本號,利用maven外掛:com.goo
java專案程式中無錯誤,但是專案上面顯示小紅叉
1、首先檢視windows–>preferences–>compiler的設定 2、右鍵專案檢視properties–>java compiler 3、右鍵專案檢視Properties——>Project Facets warning:必須保證這三
java 專案部署在linux 平臺
實習中遇到java專案部署到linux伺服器上。 之前總是在eclipse中直接執行,缺少直接部署的經驗,以此篇做記錄: 1、首先在eclipse中寫好java專案。 2、利用IDE的匯出功能,將java專案打成jar包匯出: 右擊專
java專案中配置檔案的使用
讀寫xml、properties 檔案型別 新建java工程Test專案,專案src下建立demo.propertiesFileDemo.java、 demo.xmlFileDemo.java 引入相關jar包: :commons-collections-3.2.j
java 專案時間和伺服器時間不一致
今天線上專案關於時間的幾個任務都出了問題,檢視日誌發現日誌的時間不對,用的是log4j,日誌輸出的時間都早了很長時間。 1 首先先登上伺服器查看了伺服器的系統時間 linux下 date命令 時間正確的。 2 瀏覽網頁發現有個硬體時間,系統時間是指當前Linux Kernel中的時鐘,而硬體時鐘則是主
linux下java專案的部署
作為jvm與java程式碼的中間價,tomcat雖然不是最強大的容器,但是因為其開源免費,所以還是受到廣大開發者的qingmai, 把專案部署到tomcat中相當簡單,但是鑑於朋友的熟悉程度的不同,這裡還是說一下,懂得的可以飄過,謝謝。 前些篇文章以及介紹了tomcat的安裝方式,這裡直接從
Java專案微服務中新增攔截器實現
目的:專案中需要攔截器的實現,讓沒有登陸的使用者無法通過url來實現頁面的渲染。 實現: 一、繼承HandlerInterceptorAdapter public class LoginInterceptor extends HandlerInterceptorAdapter 二
在eclipse中建立java專案
注意:安裝前必備環境:安裝eclipse之前必須安裝JDK環境。安裝方法主要有:下載JDK,安裝JDK,配置JDK的環境變數,測設JDK是否安裝好。具體步驟詳見博文: java開發環境搭建 使用eclipse從頭一步步建立java專案 1.下載eclipse 官網地
Java專案中讀寫檔案
1.讀取檔案 InputStream input;//輸入流 InputStreamReader isr = null; BufferedReader br = null; //用於包裝InputStreamReader,提高處理效能。因為
釋出java專案或者web專案修改工程名字的問題
很多時候、我們需要修改Java專案的名字。 1、如果是java專案,直接F2重新命名之後、再在.project 檔案裡修改專案的名字、重新整理即修改完畢。 2、如果是Java web專案,F2重新命名之後,點選專案名稱、右鍵會有Properties選項。點選Web Project Set
java專案開發經驗總結
"我自己是一名從事了8年的j a v a全棧開發工程師,辭職目前在做線上教育講師,來了就是我學生,有不懂的可以問我 今年4月我花了一個月整理了一套比較系統適合2018年學習的 j a v a資料,從基礎的面向物件到執行緒, j d b c都有整理,送給每一位小夥伴,這裡是學習者聚集地,如果你