谈到性能优化分析一般会涉及到:
Java代码层面的,典型的循环嵌套等
还会涉及到Java JVM:内存泄漏溢出等
MySQL数据库优化:分库分表、慢查询、长事务的优化等
今天主要分享JVM性能调优工具,文末有详细的JVM调优方法和步骤。
什么场景需要JVM调优
OutOfMemoryError,内存不足
内存泄露
线程死锁
锁争用(Lock Contention)
Java进程消耗CPU过高
这些问题出现的时候常常通过重启服务器或者调大内存来临时解决,实际情况,还需要尽量还原当时的业务场景,并分析内存、线程等数据,通过分析找到最终的解决方案,这就会涉及到性能分析工具。
JVM性能监控分析工具
JDK本身提供了很丰富的性能监控工具,除了集成式的visualVM和jConsole外,还有jstat,jstack,jps,jmap,jhat小工具,这些都是性能调优的常用工具。
Jconsole :jdk自带,功能简单,但是可以在系统有一定负荷的情况下使用。对垃圾回收算法有很详细的跟踪。
JProfiler:商业软件,功能强大。
VisualVM:JDK自带,功能强大,与JProfiler类似。
MAT:MAT(Memory Analyzer Tool),一个基于Eclipse的内存分析工具。
下面介绍这些JVM工具的使用。
JVM性能调优工具
VisualVM
VisualVM 是javajdk自带的牛逼的调优工具,也是平时使用最多调优工具,几乎涉及了jvm调优的方方面面。启动起来后和jconsole 一样同样可以选择本地和远程,如果需要监控远程同样需要配置相关参数。
1 打开VisualVM
这个工具放在JDK安装目录的bin目录下,双击即可打开,如下图所示