老年代

笔者带你剖析大规模分布式Java平台JVM性能调优基础

纵饮孤独 提交于 2020-03-01 17:37:51
前言 其实说到对JVM进行性能调优早已是一个老生常谈的话题,如果你所在的技术团队还暂时达不到淘宝团队那样的高度,无法满足在OpenJDK的基础之上根据自身业务进行针对性的二次开发和定制调优,那么对于你来说,唯一的选择就是尽可能的熟悉JVM的内存布局,以及熟练掌握与GC相关的那些选项配置,否则JVM的基础性能调优不是痴人说梦? 目录 一、性能调优的一些概念和目标; 二、性能调优的基本原则; 三、新生代的性能调优; 四、老年代的性能调优; 一、性能调优的一些概念和目标 相信对JVM有所了解的开发人员,对于调优过程中牵扯的 吞吐性、低延迟/高响应 应该不会感觉到陌生。既然生产环境中是大规模的分布式Java平台,JVM吃的内存必然不会太少。不知大家是否还曾记得,64位的JVM能够顺利访问大内存,其最主要的原因是因为其采用了64位的指针架构,这同时也是寻址访问大内存的关键要素。而与之相反的32位的JVM的内存却被限定在了2-3GB上限(与操作平台密切相关,Linux平台,Windows则为1.5G上限)。 大规模的分布式Java平台除了JVM吃的内存特别大外(笔者之前的项目单点持有内存为30GB),为了增加每一个节点的可用性,都是采用多 JVM集群的部署模式 ,这样一来一旦发生单点故障的时候,不会导致整个服务不可用,从而也能够降低单点负载,提升整体程序的执行性能