随笔分类 -  JVM原理与调优

摘要:1. 锁优化的思路和方法这里提到的锁优化,是指在阻塞式的情况下,如何让性能不要变得太差。但是再怎么优化,一般来说性能都会比无锁的情况差一点。这里要注意的是,在ReentrantLock中的tryLock,偏向于一种无锁的方式,因为在tryLock判断时,并不... 阅读全文
posted @ 2018-07-15 17:49 john8169 阅读(329) 评论(0) 推荐(0)
摘要:java问题的排查这么多年几乎没有什么改进,还是老的方法;每年查的问题也都很类似,不会有什么太多特殊的问题出现;java一些很常见的问题基本可以用一个模式去解的(大部分问题,只是有些问题比较复杂)所有的性能优化问题跟排查一个故障没有太大区别,因为最终都体现在... 阅读全文
posted @ 2018-07-08 22:36 john8169 阅读(929) 评论(0) 推荐(0)
摘要:由于Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分。在讨论JVM内存区域划分之前,先来看一下Java程序具体执行的过程:如上图所示,首先Java源代码文件(.java后缀)会被Java编译器编译为字节码文件(.cla... 阅读全文
posted @ 2017-05-08 23:09 john8169 阅读(173) 评论(0) 推荐(0)
摘要:一、外在表现有时java应用的load很高,影响系统稳定性,这时候就要进行问题排查,找出影响系统稳定性的因素。如果是进程级的应用,如Nginx、Apache等都还比较容易排查,但如果是JVM中的某个线程导致的,估计有人就要开始抓瞎了。 二、排查过程 1.ps -ef ... 阅读全文
posted @ 2017-02-19 11:14 john8169 阅读(284) 评论(0) 推荐(0)
摘要:一、外在表现前段时间系统经常出现OOM,服务很不稳定,偶尔会有java进程不存在的情况,临时解决方案只能是重启。 二、辅助工具1.top用top查看,发现内存占用(%MEM)挺多,其他指标均正常。 2.dmesg如果发现自己的java进程突然消失了,那么就要借助dme... 阅读全文
posted @ 2017-02-19 10:17 john8169 阅读(757) 评论(0) 推荐(0)
摘要:JDK本身提供了很多方便的JVM性能调优监控工具,有jps、jstack、jmap、jhat、jstat、hprof等小巧的工具. 1.jps(Java Virtual Machine Process Status Tool)最常用的就是 jps -mlvVjps主要... 阅读全文
posted @ 2017-02-12 21:42 john8169 阅读(292) 评论(0) 推荐(0)
摘要:BTrace是神器,每一个需要每天解决线上问题,但完全不用BTrace的Java工程师,都是可疑的。BTrace的最大好处,是可以通过自己编写的脚本,获取应用的一切调用信息。而不需要重启应用!只要定义脚本时不作大死(比如查看谁调用了HashMap的put方法),直接在... 阅读全文
posted @ 2016-05-29 12:46 john8169 阅读(217) 评论(0) 推荐(0)