![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
今夕何夕%
靡不有初,鲜克有终!
展开
-
arthas的使用
背景: 一次线上问题的综合排查排查,两个相同的系统的某个模块,数据量更少的系统查询更慢。 先说下整体思路: 查看系统整理负载,网络有100左右毫秒的延迟,看起来影响不大 查看正序运行整体情况,一次查询会经历3次FGC,有问题,解决后虽然会快一些但是还是有点慢 跟踪调用栈,发现有点在获查询结果的时候特别慢 排查是否有mysql慢查询(定义为1秒以上的查询),结果是没有 通过arthas发...原创 2020-03-13 15:59:56 · 483 阅读 · 0 评论 -
JVM中GC算法
1.神魔是垃圾回收 程序的运行必然需要申请内存资源,无效的内存资源如果不及时的处理就会一直占用内存资源,最终导致内存溢出,所以内存资源的管理就非常有必要的。 2.垃圾回收常见的算法 2.1 引用计数法 相互引用 原理: 假如有一个对象A,任何一个对象对A的引用,那么对象A的引用计数器就会增加1,当引用失败时候,对象A的引用就减去一,如果对象的A计数器的值为0,就说明...原创 2020-03-07 15:16:07 · 216 阅读 · 0 评论 -
VisualVM工具的使用
1. 找到自己jdk的安装目录,找到C:\Program Files\Java\jdk1.8.0_211\bin\jvisualvm.exe,双击即可,如图 2.监控远程的JVM 在tomcat的bin文件夹下修改catalina.sh JAVA_OPTS=“-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxrem...原创 2020-03-03 17:54:13 · 142 阅读 · 0 评论 -
Jvm中jstack的使用
1.有时候需要我们查看jvm中线程的执行情况,比如发现cpu负载突然增高了,出现了死锁,死循环等,那我们如何分析呢? 这个时候由于程序是正常运行的,没有任何输出,从日志方面也看不出什么问题,所以就需要查看jvm内部线程的的执行情况,然后在查找出原因。 这个时候就需要用到 jstack命令了 #查看自己java程序的进程号 jps -l # 11665是进程号 jstack 11665 ...原创 2020-03-03 16:27:25 · 227 阅读 · 0 评论 -
关于jvm的一些命令和工具
一 . #查看运行的java程序的进程号 jps #查看正在运行的hava程序的jvm参数 后面是进程号 jinfo -flags 11665 二 . jstat命令查看堆内存使用情况 1。 查看类加载统计 jstat [-命令选项][vmid][间隔时间/毫秒][查询次数] -loaded : 加载class数量 -Bytes : 所占空间大小 -Unloaded...原创 2020-03-03 15:25:20 · 138 阅读 · 0 评论