JVM-----第五章 调优案例分析与实战

第五章 调优案例分析与实战


1. 概述

​ …

2.案例分析

(1). 高性能硬件上的程序部署策略

高性能硬件上部署程序,目前主要有两种方式:

  1. 通过64位JDK来使用大内存
  2. 使用若干个32位虚拟机建立逻辑集群来利用硬件资源

​ 给Java虚拟机分配超大堆的前提是有把握把应用程序的Full GC频率控制得足够低,至少低到不会影响用户使用,因为超大的堆也意味着GC非常的耗时.

​ 控制Full GC频率的关键是看应用中绝大多数对象能否符合"朝生夕灭"的原则,也就是大多数对象的生存时间不应该太长,尤其不能有成批量的,长时间生存的大对象,以保证老年代空间的稳定.

如果使用64位JDK来管理大内存,还应该考虑以下问题:

  1. 内存回收到时长时间停顿.
  2. 64位JDK的性能普遍低于32位JDK
  3. 需要程序足够稳定,因为这种应用一旦堆溢出几部无法产生堆转储快照,页几乎无法分析.
  4. 相同程序下一般64位JDK比32位JDK消耗内存大,这是因为指针膨胀,数据类型对齐补白等因素.

(2). 集群间同步导致的内存溢出

(3). 堆外内存导致的溢出错误

​ 垃圾收集时虚拟机虽然会对Direct Memory(堆外内存)进行回收,但Direct Memory不能像新生代和老生代那样发现内存不足时通知进行GC,只能等Full GC的时候顺便进行这部分内存的收集.

(4). 外部命令导致系统缓慢

(5). 服务器JVM进程崩溃

(6). 不恰当数据结构导致内存占用过大

(7). 由Windows虚拟内存导致的长时间停顿

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值