《深化了解Java虚拟机》笔记之第5章 调优事例剖析与实战ITeye - 凯发娱乐

《深化了解Java虚拟机》笔记之第5章 调优事例剖析与实战ITeye

2019年02月26日13时05分23秒 | 作者: 沛凝 | 标签: 内存,运用,体系 | 浏览: 2576

     (1)集群间同步导致的内存溢出。

运用JBossCache这种集群缓存来同步,构建大局缓存。能够答应读操作频频,由于数据在本地内存有一份副本,读取的动作不会消耗多少资源,但不应当有过于频频的写操作,这会带来很大的网络同步的开支。

(2)  堆外内存导致的溢出过错。

 Direct Memory区的内存溢出。Direct Memory不能像新生代和老时代那样,发现空间缺乏就告诉废物收回器进行废物收回,它只能等候Full GC时“趁便”帮它进行整理。不然,它只能比及抛出内存溢出反常时,先catch掉,再在catch块里边“大喊”一声:”System.gc()!”。要是虚拟机仍是不听(比如打开了-XX:+DisableExplicitGC),那就能只能眼睁睁地看着堆中还有许多闲暇内存,自己却不得不抛出内存溢出反常。如cometD 1.1.1结构,就有很多的NIO操作需求用到Direct Memory.

最终,经过-XX:MaxDirectMemorySize调整其巨细。

(3)  外部命令导致体系缓慢。

发现恳求呼应时刻比较慢,经过操作体系的mpstat东西发现CPU运用率很高,而且用绝大多数CPU资源的程序并不是运用体系自身,而是”fork”体系调用。修正相应的代码。

 

2、在高性能硬件上布置程序,现在主要有两种方法:

   (1) 经过64的JDK来运用大内存;

   (2) 运用若干个32位虚拟机树立逻辑集群来使用硬件资源。

 

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表凯发娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章