运维开发网

Java性能分析

运维开发网 https://www.qedev.com 2021-04-08 12:29 出处:51CTO 作者:Leejay_Engineer
一、jstack分析cpu问题1、top 找出占用cpu较高的进程  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                  450 Bmigjms   20   0 4845964   1.2g  40516

一、jstack分析cpu问题

1、top 找出占用cpu较高的进程

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                               
  450 Bmigjms   20   0 4845964   1.2g  40516 S   0.3  8.0 465:42.87 java                                                  
 4583 Bmigjms   20   0 8115608   2.2g  34088 S   0.3 14.2 818:46.58 java

2、top -H -p pid 找出cpu使用率比较高的线程

top -H -p 450
  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                
  501 Bmigjms   20   0 4845964   1.2g  40516 S  0.3  8.0  93:00.66 java                                                   
  450 Bmigjms   20   0 4845964   1.2g  40516 S  0.0  8.0   0:00.00 java                                                   
  454 Bmigjms   20   0 4845964   1.2g  40516 S  0.0  8.0   0:02.00 java

3、将上面找到的pid转换为16进制的nid

-bash-4.2$ printf '%x\n' 450
1c2

4、找到相应的堆栈信息

jstack 501 | grep '0x1c2' --color

找到nid为0x1c2的堆栈信息,通常会比较关注WAITING和TIMED_WAITING和BLOCKED

5、用命令过滤,如果WAITING之类的特别多,那么多半就是有问题了

cat jstack.log | grep 'java.lang.Thread.State' | sourt -nr | uniq -c

二、频繁gc

jstat -gc pid 1000

1000表示采样间隔(ms)

S0C/S1C、S0U/S1U、EC/EU、OC/OU、MC/MU、YGC/YGT、FGC/FGCT、GCT

两个Survivor区、Eden区、老年区、元数据区的容量、使用量、YongGc、FullGc的耗时和次数、总耗时

如果看到gc比较频繁,再针对gc做进一步的分析

三、上下文切换

vmstat 1
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0   2708 2398264 832984 9235956    0    0     0     2    0    0  0  0 100  0  0
 0  0   2708 2398240 832984 9235956    0    0     0     8  255  229  0  0 100  0  0
 0  0   2708 2398240 832984 9235956    0    0     0    24  282  262  0  0 100  0  0

cs(context switch) 列代表上下文切换的次数

扫码领视频副本.gif

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号