小編這次要給大家分享的是Java進程cpu占用過高怎么辦,文章內(nèi)容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。
創(chuàng)新互聯(lián)專注于惠濟企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站,商城網(wǎng)站建設(shè)?;轁W(wǎng)站建設(shè)公司,為惠濟等地區(qū)提供建站服務(wù)。全流程按需求定制開發(fā),專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
cpu是時分(time division)的,操作系統(tǒng)里有很多線程,每個線程的運行時間由cpu決定,cpu會分給每個線程一個時間片,時間片是一個很短的時間長度,如果在時間片內(nèi),線程一直占有,則是100%;我們應(yīng)該意識到,cpu運行速度很快(主頻非常高),除非密集型耗費cpu的運算,其它類型任務(wù)都會在小于時間片的時間內(nèi)結(jié)束。
產(chǎn)生CPU100%的原因:
某一程序一直占用CPU是導致CPU100%的原因,大概有以下幾種情況:
1、Java 內(nèi)存不夠或溢出導致GC overhead問題, GC overhead 導致的CPU 100%問題;
2、死循環(huán)問題. 如常見的HashMap被多個線程并發(fā)使用導致的死循環(huán), 或者死循環(huán);
3、某些操作一直占用CPU
第一步:使用top命令,查看占用cpu的進程
[root@sdfsdfseZ codeimage]# top
第二步:ps -ef | grep java 或jps命令,找出服務(wù)器的所有java進程
第三步:找出CPU耗用最厲害的進程pid
第四步:查找出具體占用cpu利用率最厲害的線程號,top -H -p pid 。然后按下shift+p,跳出CPU監(jiān)控
當前線程號為:1747
第五步:將獲取到的線程號轉(zhuǎn)換成16進制
因為java線程棧文件中的線程id是十六進制,需要將線程id從十進制轉(zhuǎn)為十六進制。十進制 轉(zhuǎn)十六進制的命令如下:
結(jié)果為:
第六步:導出線程棧
將具體的占用CPU過高的java進程的線程棧導出,導出命令如下:
pid.tdump文件后綴名隨意,通常以tdump結(jié)尾。
[root@sdfsdfsdeZ codeimage]# jstack 1747 > tmp/1747.tdump
可能會拋出異常;
1747: Unable to open socket file: target process not responding or HotSpot VM not loaded
The -F option can be used when the target process is not responding
原因分析
jvm運行時會生成一個目錄hsperfdata_$USER($USER是啟動java進程的用戶),在linux中默認是/tmp,目錄下會有些pid文件,存放jvm進程信息,而jmap,jstack等工具會讀取/tmp/hsperfdata_$USER下的pid文件獲取連接信息.
檢查了/tmp/hsperfdata_root目,,但在$TOMCAT_HOME目錄中的temp目錄中有對應(yīng)的文件.
解決辦法
使用
[root@iZ2zeab8t820b5ywp0rkfeZ bin]# jstack 1706 > /tmp/hsperfdata_root/1706.tdump
第七步:導出堆
[root@sddsdfsaZ bin]# jstat -gcutil 1706
第八步:jvisualvm分析快照使用JAVA_HOME/bin/jvisualvm.exe,載入快照
文件----->載入—>文件類型(Dump)
看完這篇關(guān)于Java進程cpu占用過高怎么辦的文章,如果覺得文章內(nèi)容寫得不錯的話,可以把它分享出去給更多人看到。
分享題目:Java進程cpu占用過高怎么辦
本文地址:http://aaarwkj.com/article24/jjjjje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、App開發(fā)、網(wǎng)站排名、品牌網(wǎng)站設(shè)計、手機網(wǎng)站建設(shè)、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)