- 博客(5)
- 资源 (1)
- 收藏
- 关注
原创 JVM 问题排查
CPU使用率高找出使用率高的进程的pidtop找出使用率高的线程tpidtop -p pid -H查看使用率高的线程当前在干什么jstack -l pid > stack.log// 将线程的tpid转为16进制,到stack.log中查找grep tpid stack.log -a3GC问题// -t:打印时间戳,1s每隔1秒打印一次jstat -gcutil -t pid 1s也可以通过查看
2016-05-26 17:07:14
1551
原创 JVM GC调优
目标满足应用的响应时间和吞吐量需求,尽量减少GC对应用的影响原则大部分时候都不需要调优GC,只需配置-Xms,-Xmx即可,JVM会自动进行调整先满足响应时间需求,再满足吞吐量需求FullGC对应用的影响更大,要尽量减少FullGC执行的时间和频率,减少转移到Old的对象数量监控GC状态查看一下GC的总体执行情况jstat -gcutil pid 参数 说明 YGC Min
2016-05-24 18:01:48
391
原创 JVM-GC基础
基本的垃圾回收算法引用计数Reference Counting标记-清除Mark-Sweep复制Copying标记-整理Mark-Compact比较JVM分代结构分代依据JVM GC过程JVM GC算法串行并行并发G1比较JVM GC Root基本的垃圾回收算法引用计数(Reference Counting)增加一个引用,引用计数加1,去掉一个引用,引用计数减1,然后回
2016-05-23 14:37:48
334
原创 JVM体系结构
ClassLoader将Class加载到内存ClassLoader结构BootstrapClassLoader:加载Java核心库(JAVA_HOME/jre/lib),唯一一个使用本地代码编写的加载器ExtensionClassLoader:加载扩展库(JAVA_HOME/jre/lib/ext和系统参数java.ext.dirs指定的目录),它的父加载器是null(因为BootstrapCl
2016-05-23 14:15:26
323
原创 ThreadLocal
ThreadLocal简述一种线程绑定机制,每个线程都拥有对象的独立副本,不会与其他线程冲突,从而避免了并发与同步问题。结构每个线程都有一个ThreadLocalMap,其中Key为ThreadLocal对象,Value为用户对象的值ThreadLocal只是作为Key标识,并不存放任何数据,真正存放数据的是每个线程中的ThreadLocalMap。所以ThreadLocal一般应该定义成静态变量。
2016-05-20 11:43:50
283
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人