随笔分类 -  JVM

摘要:CPU利用率高,可能的原因 代码中有比较耗CPU的操作,比如循环等(重点关注) 查看当前CPU消耗过高的进程 通过进程ID,找到哪些线程CPU过高 通过jstack查看当前线程具体的堆栈信息 Full GC 次数过多(重点关注) 线上多个线程的CPU都超过了100%,通过jstack命令可以看到这些 阅读全文
posted @ 2021-01-13 15:49 zendwang 阅读(427) 评论(0) 推荐(0)
摘要:查看GC相关区域的使用率(utilization)统计 jstat -gc -t 1011 1000 5,其中pid 1011 interval 1000 count 5 [jbossuser@sndbas-sit-wildfly-35265-1 snsoadmin]$ jstat -gcutil 阅读全文
posted @ 2021-01-08 16:50 zendwang 阅读(171) 评论(0) 推荐(0)
摘要:频繁调用ConcurrentLinkedQueue类的offer和remove方法会内存泄露 看一下ConcurrentLinkedQueue类的remove方法 public class ConcurrentLinkedQueue<E> extends AbstractQueue<E> imple 阅读全文
posted @ 2020-12-28 15:46 zendwang 阅读(869) 评论(0) 推荐(0)
摘要:Arthas 查CPU利用率高的5个线程 thread -n 5 查看类对象的属性 watch org.springframework.util.MimeTypeUtils$ConcurrentLruCache get 'target' -x 2 jmap dump 堆内存快照 jmap -dump 阅读全文
posted @ 2020-12-28 11:11 zendwang 阅读(164) 评论(0) 推荐(0)
摘要:在使用jvisualvm分析大的dump文件时,常会遇到堆查器使用的内存不足 解决办法: 修改JAVA_HOME/lib/visualvm/etc/visualvm.conf文件中 visualvm_default_options="-J-client -J-Xms24 -J-Xmx256m",把2 阅读全文
posted @ 2020-12-26 09:15 zendwang 阅读(5265) 评论(0) 推荐(2)
摘要:堆 -Xms -Xmx 年轻代 -Xmn 永久代(JDK1.7) -XX:PermSize -XX:MaxPermSize 元空间(JDK1.8) -XX:MetaspaceSize -XX:MaxMetaspaceSize GC相关 -verbose:gc -XX:+PrintGCDetails 阅读全文
posted @ 2020-10-21 09:36 zendwang 阅读(156) 评论(0) 推荐(0)
摘要:一般情况下,一次full gc将会对年轻代、老年代以及元空间、堆外内存进行垃圾回收 触发Full GC的原因有: 当年轻代晋升到老年代的对象大小比目前老年代剩余的空间大小还要大时,此时会触发Full GC; 当老年代的空间使用率超过某阈值时,此时会触发Full GC; 当元空间不足时(JDK1.7永 阅读全文
posted @ 2020-10-21 09:32 zendwang 阅读(384) 评论(0) 推荐(0)