JVM以及调优

1.

http://blog.csdn.net/caihaijiang/article/details/6084325 jps、jinfo、jstat、jstack、jmap、jconsole等命令

 

问题:查看耗时cpu进程中线程方法1

1.jps 查看进程pid

2.top -Hp  进程pid

     输出找出time列时间最长的线程id

3.printf "%x\n" 线程pid号 (转换成16进制输出) > 十六进制id

[sk@x-online001 ~]$ printf "%x\n" 7387 

1cdb

[ymsk@x--001 ~]$ jstack  pid |grep 1cdb 

Attaching to remote server pid, please wait...

Error attaching to remote server: java.rmi.UnknownHostException: Unknown host: pid; nested exception is: 

java.net.UnknownHostException: pid

4.jstack  pid |grep  十六进制id

jstack 7064 > jstack1113  查找十六进制出现地方既是异常问题点

查看线程cpu高方法二:

29746  jps 进程

pidstat -p 29746  -t 1 5  查看占用cpu比较高的线程id号2628
jstack 29746 > jstack03.txt 将线程dump信息写入文件jstack03.txt, 然后将2628十六进制的线程数:97C 为79C为查询条件,到jstack03.txt文件中查找到nid= 97C的线程,该线程即为消耗CPU多的线程

cpu 比较高

top - 19:58:32 up 97 days,  3:07,  1 user,  load average: 1.00, 1.02, 0.93

Tasks:  89 total,   1 running,  88 sleeping,   0 stopped,   0 zombie

Cpu(s): 99.3%us,  0.7%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

Mem:   2054216k total,  1978800k used,    75416k free,    81644k buffers

Swap:        0k total,        0k used,        0k free,  1076048k cached

 

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                      

20466 ymsk      20   0 2152m 575m 7744 S 99.2 28.7 226:14.68 java       

 

 

猜你喜欢

转载自yelwen000.iteye.com/blog/2269337
今日推荐