从GC、线程角度分析中间件性能

来源:互联网 发布:2016全球华人网络春晚 编辑:程序博客网 时间:2024/06/05 00:24

线上经常需要对中间件的性能进行巡检,除了中间件本身的自带监控以外。很多的java 中间件没有提供监控,或者生产环境不允许操作(比如TOMCAT)

针对中间件本身可以从GC、线程的角度分析出java虚拟机的运行情况

 

巡检指标:GC日志、线程dump

巡检工具:Gceasy、FastThread、PMTI、jstack、jstat、jmap 等

巡检命令:

GC 运行情况:jstat -gcutil  pid  1000 20 (线上jstat 需要中间件运行的jdk,还有一些情况可能会有报错,按照提示加上-d64 、-F即可)

堆内存配置情况:jmap-heap pid     查看堆内存配置情况

内存dump:jmap -dump:format=b,file=test.log pid    文件比较大,用 IBM  MemoryAnalyzer工具分析即可,建议8G内存以上的机器配置

线程运行情况:jstack-pid   输出到文本,用线程分析工具分析线程即可

占用cpu较高的线程dump 分析:

ps -mp pid -o THREAD,tid,time
 printf "%x\n" tid
 jstack pid | grep tid -A 30

 

 

专业分析GC日志、线程dump 网站:

GC 日志 :http://gceasy.io/ (上传GC日志即可分析)

线程dump:http://fastthread.io/(上传线程dump 文件即可分析)

 

专业分析工具:

内存dump 分析:IBM  MemoryAnalyzer (MemoryAnalyzer-1.6.1.20161125-win32.win32.x86_64.zip)

线程分析:IBM jca 分析工具  (jca433.jar)

GC日志:IBM PMTI 工具  (ga456.jar)

 

附jinfo 可以在线开启 jvm参数,开启GC日志等参数,可以了解学习下

 

 

 

 

 


原创粉丝点击