JVM性能调优详解
性能调优 性能调优包含多个层次,比如:架构调优、代码调优、JVM调优、数据库调优、操作系统调优等。 架构调优和代码调优是JVM调优的基础,其中架构调优是对系统影响最大的。 性能调优基本上按照以下步骤进行:明确优化目标、发现性能瓶颈、性能调优、通过监控及数据统计工具获得数据、确认是否达到目标。 何时进行JVM调优 遇到以下情况,就需要考虑进行JVM调优了: Heap内存(老年代)持续上涨达到设置的最大内存值; Full GC 次数频繁; GC 停顿时间过长(超过1秒); 应用出现OutOfMemory 等内存异常; 应用中有使用本地缓存且占用大量内存空间; 系统吞吐量与响应性能不高或下降。 JVM调优的基本原则 JVM调优是一个手段,但并不一定所有问题都可以通过JVM进行调优解决,因此,在进行JVM调优时,我们要遵循一些原则: 大多数的Java应用不需要进行JVM优化; 大多数导致GC问题的原因是代码层面的问题导致的(代码层面); 上线之前,应先考虑将机器的JVM参数设置到最优; 减少创建对象的数量(代码层面); 减少使用全局变量和大对象(代码层面); 优先架构调优和代码调优,JVM优化是不得已的手段(代码、架构层面); 分析GC情况优化代码比优化JVM参数更好(代码层面); 通过以上原则,我们发现,其实最有效的优化手段是架构和代码层面的优化,而JVM优化则是最后不得已的手段