最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java應(yīng)用cpu占用過高問題分析及解決方法

 更新時(shí)間:2017年09月30日 09:50:01   作者:流子  
這篇文章主要介紹了java應(yīng)用cpu占用過高問題分析及解決方法,具有一定參考價(jià)值,需要的朋友可以參考下。

使用jstack分析java程序cpu占用率過高的問題

1,使用jps查找出java進(jìn)程的pid,如3707

2,使用top -p 14292 -H觀察該進(jìn)程中所有線程的CPU占用。

[root@cp01-game-dudai-0100.cp01.baidu.com ~]# top -p 14292 -H 
top - 22:14:13 up 33 days, 7:29, 4 users, load average: 25.68, 32.11, 33.76 
Tasks: 113 total,  2 running, 111 sleeping,  0 stopped,  0 zombie 
Cpu(s): 68.3%us, 6.3%sy, 0.0%ni, 20.2%id, 0.1%wa, 0.2%hi, 4.9%si, 0.0%st 
Mem: 65965312k total, 65451232k used,  514080k free,  82164k buffers 
Swap:  975864k total,  972052k used,   3812k free, 9714400k cached 
 PID USER   PR NI VIRT RES SHR S %CPU %MEM  TIME+ COMMAND                                                                                     
15844 root   15  0 6889m 5.7g 4864 S 20.6 9.1 814:13.29 java                                                                                      
15848 root   15  0 6889m 5.7g 4864 S 13.0 9.1 460:25.17 java                                                                                      
15611 root   15  0 6889m 5.7g 4864 S 12.7 9.1 468:17.77 java                                                                                      
15613 root   15  0 6889m 5.7g 4864 S 11.7 9.1 479:40.45 java                                                                                      
15743 root   15  0 6889m 5.7g 4864 S 11.7 9.1 443:04.80 java                                                                                      
15612 root   15  0 6889m 5.7g 4864 S 11.0 9.1 453:43.68 java                                                                                      
15965 root   15  0 6889m 5.7g 4864 S 10.3 9.1 371:00.33 java                                                                                      
15490 root   15  0 6889m 5.7g 4864 S 7.7 9.1 255:32.74 java                                                                                      
15587 root   15  0 6889m 5.7g 4864 S 7.3 9.1 282:27.58 java                                                                                      
15590 root   15  0 6889m 5.7g 4864 S 7.3 9.1 205:48.37 java                                                                                      
15491 root   15  0 6889m 5.7g 4864 R 6.3 9.1 279:09.08 java                                                                                      
15689 root   15  0 6889m 5.7g 4864 S 5.7 9.1 251:42.36 java                                                                                      
16935 root   15  0 6889m 5.7g 4864 S 5.7 9.1 190:34.37 java                                                                                      
15665 root   15  0 6889m 5.7g 4864 S 5.3 9.1 250:07.34 java                                                                                      
16920 root   15  0 6889m 5.7g 4864 S 5.3 9.1 241:34.50 java                                                                                      
15671 root   15  0 6889m 5.7g 4864 S 5.0 9.1 239:49.97 java                                                                                      
15492 root   15  0 6889m 5.7g 4864 S 4.7 9.1 210:23.09 java                                                                                      
14322 root   16  0 6889m 5.7g 4864 S 4.3 9.1 107:39.61 java                                                                                      
14316 root   16  0 6889m 5.7g 4864 S 4.0 9.1 107:18.43 java                                                                                      
14317 root   16  0 6889m 5.7g 4864 S 4.0 9.1 107:29.13 java                                                                                      
15591 root   15  0 6889m 5.7g 4864 S 4.0 9.1 114:34.90 java                                                                                      
14313 root   16  0 6889m 5.7g 4864 S 3.7 9.1 107:12.70 java                                                                                      
14314 root   15  0 6889m 5.7g 4864 S 3.7 9.1 107:28.05 java                                                                                      
14319 root   16  0 6889m 5.7g 4864 S 3.7 9.1 107:27.43 java                                                                                      
14321 root   15  0 6889m 5.7g 4864 S 3.3 9.1 108:01.12 java                                                                                      
15589 root   15  0 6889m 5.7g 4864 R 3.0 9.1 109:01.91 java                                                                                      
15615 root   15  0 6889m 5.7g 4864 S 3.0 9.1 114:55.29 java                                                                                      
16808 root   15  0 6889m 5.7g 4864 S 2.7 9.1 279:05.03 java                                                                                      
14315 root   15  0 6889m 5.7g 4864 S 2.0 9.1 107:45.00 java                                                                                      
14320 root   15  0 6889m 5.7g 4864 S 2.0 9.1 107:48.30 java                                                                                      
15489 root   15  0 6889m 5.7g 4864 S 1.7 9.1 57:38.46 java                                                                                      
15670 root   15  0 6889m 5.7g 4864 S 1.3 9.1  5:55.43 java                                                                                      
14318 root   15  0 6889m 5.7g 4864 S 0.7 9.1 107:45.88 java                                                                                      
14826 root   15  0 6889m 5.7g 4864 S 0.7 9.1 25:07.64 java

3,找出CPU消耗較多的線程id,如15844,將15844轉(zhuǎn)換為16進(jìn)制0x3de4,注意是小寫哦

4,使用jstack 14292|grep -A 10 0x3de4來查詢出具體的線程狀態(tài)。

[root@cp01-game-dudai-0100.cp01.baidu.com ~]# jstack 14292|grep -A 10 0x3de4 
"pool-52-thread-1" prio=10 tid=0x000000005a08e000 nid=0x3de4 waiting on condition [0x00002ae63d917000] 
  java.lang.Thread.State: WAITING (parking) 
    at sun.misc.Unsafe.park(Native Method) 
    - parking to wait for <0x00000006f9a0a110> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) 
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:156) 
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987) 
    at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399) 
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) 
    at java.lang.Thread.run(Thread.java:662) 

通過這些線程狀態(tài)便可基本定位問題之所在。

解決辦法:

方法1

1.jps 獲取Java進(jìn)程的PID。

2.jstack pid >> java.txt 導(dǎo)出CPU占用高進(jìn)程的線程棧。

3.top -H -p PID 查看對應(yīng)進(jìn)程的哪個線程占用CPU過高。

4.echo “obase=16; PID” | bc 將線程的PID轉(zhuǎn)換為16進(jìn)制,大寫轉(zhuǎn)換為小寫。

5.在第二步導(dǎo)出的Java.txt中查找轉(zhuǎn)換成為16進(jìn)制的線程PID。找到對應(yīng)的線程棧。

6.分析負(fù)載高的線程棧都是什么業(yè)務(wù)操作。優(yōu)化程序并處理問題。

方法2

1.使用top 定位到占用CPU高的進(jìn)程PID

top

通過ps aux | grep PID命令

2.獲取線程信息,并找到占用CPU高的線程

ps -mp pid -o THREAD,tid,time | sort -rn

3.將需要的線程ID轉(zhuǎn)換為16進(jìn)制格式

printf "%x\n" tid

4.打印線程的堆棧信息

jstack pid |grep tid -A 30

總結(jié)

以上就是本文關(guān)于java應(yīng)用cpu占用過高問題分析及解決方法的全部內(nèi)容,希望對大家有所幫助,如果有什么疑問,可以隨時(shí)留言,小編會及時(shí)回復(fù)大家的。感謝朋友們對腳本之家網(wǎng)站的支持。

相關(guān)文章

  • Java Lambda表達(dá)式入門示例

    Java Lambda表達(dá)式入門示例

    這篇文章主要介紹了Java Lambda表達(dá)式,結(jié)合簡單實(shí)例形式分析了Lambda表達(dá)式功能、原理、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2019-09-09
  • Java匿名類,匿名內(nèi)部類實(shí)例分析

    Java匿名類,匿名內(nèi)部類實(shí)例分析

    這篇文章主要介紹了Java匿名類,匿名內(nèi)部類,結(jié)合實(shí)例形式分析了Java匿名類,匿名內(nèi)部類相關(guān)原理、用法及操作注意事項(xiàng),需要的朋友可以參考下
    2020-04-04
  • 詳解spring整合hibernate的方法

    詳解spring整合hibernate的方法

    這篇文章主要介紹了spring整合hibernate的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02
  • 使用Java實(shí)現(xiàn)KMZ和KML數(shù)據(jù)的直接解析

    使用Java實(shí)現(xiàn)KMZ和KML數(shù)據(jù)的直接解析

    本文主要講解如何用JAVA語言,直接解析KMZ數(shù)據(jù),文章首先介紹google地圖中的KMZ和KML數(shù)據(jù),然后使用代碼的方式實(shí)現(xiàn)數(shù)據(jù)的解析,最后展示解析成果以及如何將數(shù)據(jù)轉(zhuǎn)換成空間WKT數(shù)據(jù),需要的朋友可以參考下
    2024-06-06
  • java支付寶即時(shí)到帳提交訂單功能

    java支付寶即時(shí)到帳提交訂單功能

    這篇文章主要為大家詳細(xì)介紹了java支付寶即時(shí)到帳提交訂單功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • java遍歷Map的幾種方法分析

    java遍歷Map的幾種方法分析

    這篇文章主要介紹了java遍歷Map的幾種方法,結(jié)合實(shí)例形式分析了使用循環(huán)與迭代等方法操作Map遍歷的相關(guān)技巧,需要的朋友可以參考下
    2016-08-08
  • ExecutorService實(shí)現(xiàn)獲取線程返回值

    ExecutorService實(shí)現(xiàn)獲取線程返回值

    這篇文章主要介紹了ExecutorService實(shí)現(xiàn)獲取線程返回值,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • Java實(shí)現(xiàn)字符串倒序輸出的四種方法匯總

    Java實(shí)現(xiàn)字符串倒序輸出的四種方法匯總

    這篇文章主要介紹了Java實(shí)現(xiàn)字符串倒序輸出的四種方法匯總,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • JavaSE經(jīng)典小練習(xí)項(xiàng)目之拷貝文件夾

    JavaSE經(jīng)典小練習(xí)項(xiàng)目之拷貝文件夾

    文件拷貝是一個常見的任務(wù),無論是備份文件,還是將文件從一個位置復(fù)制到另一個位置,文件拷貝都是必不可少的,這篇文章主要給大家介紹了關(guān)于JavaSE經(jīng)典小練習(xí)項(xiàng)目之拷貝文件夾的相關(guān)資料,需要的朋友可以參考下
    2023-10-10
  • spring MVC搭建及配置詳解

    spring MVC搭建及配置詳解

    本篇文章主要介紹了spring MVC配置方法,要想靈活運(yùn)用Spring MVC來應(yīng)對大多數(shù)的Web開發(fā),就必須要掌握它的配置及原理,有興趣的可以了解一下。
    2017-01-01

最新評論

仙游县| 玛多县| 抚顺县| 喜德县| 开远市| 东乡族自治县| 威宁| 安新县| 乐东| 鄱阳县| 海盐县| 塘沽区| 张家界市| 南康市| 赤城县| 曲沃县| 浮梁县| 囊谦县| 探索| 顺义区| 正宁县| 常州市| 凤城市| 莒南县| 襄城县| 古田县| 天门市| 汨罗市| 宜都市| 安泽县| 六枝特区| 沙坪坝区| 新龙县| 舒城县| 祥云县| 光山县| 漳浦县| 洮南市| 湾仔区| 九龙城区| 宣恩县|