這篇文章主要講解了“如何排查Java應(yīng)用占用CPU較高導(dǎo)致系統(tǒng)響應(yīng)慢的問題”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“如何排查Java應(yīng)用占用CPU較高導(dǎo)致系統(tǒng)響應(yīng)慢的問題”吧!
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比臨海網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式臨海網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋臨海地區(qū)。費(fèi)用合理售后完善,十年實(shí)體公司更值得信賴。
某項(xiàng)目組反饋:應(yīng)用生產(chǎn)環(huán)境出現(xiàn)請(qǐng)求響應(yīng)實(shí)際較長(zhǎng),經(jīng)常出現(xiàn)客戶端請(qǐng)求超時(shí)的現(xiàn)象,系統(tǒng)幾乎不可用。
在數(shù)據(jù)庫服務(wù)器、應(yīng)用服務(wù)器中執(zhí)行top命令,發(fā)現(xiàn)應(yīng)用服務(wù)器java進(jìn)程占用CPU較高。正常情況下,在沒有流量的情況下,應(yīng)用服務(wù)器CPU使用率應(yīng)該在1%以內(nèi),但當(dāng)時(shí)查看CPU利用率大概在20%到30%左右。(這是事后補(bǔ)的圖)
記錄占用CPU較高的進(jìn)程號(hào)(pid)。
執(zhí)行top -H -p
執(zhí)行命令printf "%x\n"
執(zhí)行jstack -l
通過百度(google),是一個(gè)JDK1.8低級(jí)版本的Bug。升級(jí)生成環(huán)境JDK到1.8_238后,問題解決。
執(zhí)行命令jmap -histo(這里pid時(shí)top命令獲得的占用CPU較高的進(jìn)程號(hào)) | head -n 20
執(zhí)行命令jmap -dump:file=/tmp/javaDump.hprof,format=b(這里pid時(shí)top命令定位的占用CPU較高的進(jìn)程號(hào))
感謝各位的閱讀,以上就是“如何排查Java應(yīng)用占用CPU較高導(dǎo)致系統(tǒng)響應(yīng)慢的問題”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)如何排查Java應(yīng)用占用CPU較高導(dǎo)致系統(tǒng)響應(yīng)慢的問題這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!