最近公司有一个all-in-one的项目一直会出现网络异常的问题,目前通过各方面判断是由于线程的问题,引起mysql线程问题又有可能跟定时任务,长连接,另外还有可能跟jvm虚拟机的内存释放有关系,感觉可能性比较多,由于这个项目是前后端一起的,判断起来比较麻烦.下面介绍2款JDK自带的性能分析工具,JConsole和VisualJVM.前者主要用来分析内存,cpu,线程,类等。
image.png
上图圈出的就是这2款工具。
image.png
登录成功以后
image.png
这个界面主要展示了堆内存,线程,cpu占用率等。
image.png
image.png
image.png
image.png
image.png
以上是controlRole的一些截图。 我主要看内存和线程这块,查看堆栈的使用情况,以及线程那块的释放情况,当内存或者线程在某个时间段不稳定的时候,就去tomcat那里拉去这个时间段的日志查看原因。
如何使用JvisualJVM
image.png
image.png
image.png
image.png
image.png
以上是JVisualJVM的使用过程。 由于这软件是第一次用,所以还有很多需要学习的地方.有用过的同学可以一起讨论下.
推荐相关文章: 利用jdk自带的运行监控工具JConsole观察分析Java程序的运行 Jconsole查看线程问题,主要查看死锁