性能問題排查

1.用top找到最耗資源的進程id
[root@localhost bin]# top
top - 16:56:14 up 119 days, 6:17, 7 users, load average: 2.04, 2.07, 2.09
Tasks: 256 total, 1 running, 254 sleeping, 0 stopped, 1 zombie
Cpu(s): 5.0%us, 0.3%sy, 0.0%ni, 94.2%id, 0.4%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 8303056k total, 7368528k used, 934528k free, 515232k buffers
Swap: 16386260k total, 27312k used, 16358948k free, 4670096k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 
5244 root 15 0 1940m 1.3g 10m S 205.3 15.8 260:31.88 java 
7991 root 15 0 2336 1020 704 R 2.0 0.0 0:00.01 top
2.查詢最消耗資源的java進程
[root@localhost bin]# top -p 5244 -H
top - 16:56:00 up 119 days, 6:17, 7 users, load average: 2.05, 2.08, 2.09
Tasks: 67 total, 2 running, 65 sleeping, 0 stopped, 0 zombie
Cpu(s): 25.8%us, 0.2%sy, 0.0%ni, 73.4%id, 0.5%wa, 0.0%hi, 0.1%si, 0.0%st
Mem: 8303056k total, 7369024k used, 934032k free, 515220k buffers
Swap: 16386260k total, 27312k used, 16358948k free, 4670100k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 
5920 root 18 0 1940m 1.3g 10m R 98.6 15.8 121:55.29 java 
5925 root 25 0 1940m 1.3g 10m R 98.6 15.8 121:21.41 java 
7985 root 15 0 1940m 1.3g 10m S 3.3 15.8 0:00.10 java 
5246 root 15 0 1940m 1.3g 10m S 1.0 15.8 1:02.50 java 
5247 root 15 0 1940m 1.3g 10m S 1.0 15.8 1:02.35 java 
5248 root 15 0 1940m 1.3g 10m S 1.0 15.8 1:02.38 java
3.打印java 棧 信息
在jdk的bin下執行
[root@localhost bin]# jstack 5244 >stack.txt
4.將耗資源的javaPID轉換爲16進制(5920轉1720 去百度找 :十進制轉十六進制)
PID 對應 堆棧中的nid(16進制)
去stack.txt 中查找nid=1720的問題
"LongTimeTask Thread" daemon prio=10 tid=0x40916400 nid=0x1720 runnable [0x412fe000]
java.lang.Thread.State: RUNNABLE
at com.zving.tk.service.CreatePaperService.createPaper(CreatePaperService.java:143)
at com.zving.tk.service.CreatePaperService.execute(CreatePaperService.java:55)
at com.zving.framework.messages.LongTimeTask.run(LongTimeTask.java:154)
5.根據具體問題查找源代碼
6.同時要看一下堆的情況
在jdk的bin目錄執行
jmap - heap 5244
jmap -histo 5244

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章