y***y 发帖数: 295 | 1 大家遇到这种问题怎么解决?
程序跑起来需要的heap空间比较大
都用了Xmx1440m了还出这种错误:(
我不明白为什么这个时候virtual memory不能起作用呢? |
A**o 发帖数: 1550 | 2 64bit or do your own paging
【在 y***y 的大作中提到】 : 大家遇到这种问题怎么解决? : 程序跑起来需要的heap空间比较大 : 都用了Xmx1440m了还出这种错误:( : 我不明白为什么这个时候virtual memory不能起作用呢?
|
b******y 发帖数: 9224 | 3 Tricky issue. I think you just need to be careful to make sure the memory
usage is as small as possible... |
i****k 发帖数: 804 | 4 首先要根据exception确定是哪一种 OOME。
常见的 OOME 根据HEAP区域有两类:PermGen 和 Heap。PermGen 类的OOME只会出现在
有permgen概念的JVM,比如HOTSPOT。BEA 的 JROCKIT 不会出现这种问题。
PermGen存放两种对象:Class object 和 interned String。大多数permGen OOME由前
者引起,根本原因是hotspot对 classloader 的 garbage collection 做的不是很好。
这种问题常出现于:1. 开发过程中反复deploy程序。2. 应用的high availability
strategy或者side-by-side deployment strategy 采用了抛弃classloader的设计。3.
病态JSP,TAG, EJB compiler。
PermGen OOME 是常见,well documented,但是普通人极难处理的问题。这类问题的根
源多数在于JVM, SERVER 和应用架构的弊病。其中应用架构问题,常见病因有:
1.误用Thre
【在 y***y 的大作中提到】 : 大家遇到这种问题怎么解决? : 程序跑起来需要的heap空间比较大 : 都用了Xmx1440m了还出这种错误:( : 我不明白为什么这个时候virtual memory不能起作用呢?
|
i****k 发帖数: 804 | 5 另外,1.5G对于大多数SERVER是足够了。这个具体要参考你的SERVER的厂商文档。
增加HEAP到2G以上,或者上64位JVM,至少在目前,几乎可以肯定不是正确答案。前者
在某些JVM/OS KERNEL 组合下不能用。后者即使能用,一般而言性能也比32位差。
JAVA 的 SCALABILITY STRATEGY 主要是横向。比如,一台机器上部署多个JVM构成
CLUSTER要比增加HEAP或者64位内存有效。
【在 y***y 的大作中提到】 : 大家遇到这种问题怎么解决? : 程序跑起来需要的heap空间比较大 : 都用了Xmx1440m了还出这种错误:( : 我不明白为什么这个时候virtual memory不能起作用呢?
|
F****n 发帖数: 3271 | 6 The most likely reason is that you have a dead loop in your code.
【在 y***y 的大作中提到】 : 大家遇到这种问题怎么解决? : 程序跑起来需要的heap空间比较大 : 都用了Xmx1440m了还出这种错误:( : 我不明白为什么这个时候virtual memory不能起作用呢?
|
t*******e 发帖数: 684 | 7
3.
Very informative!
【在 i****k 的大作中提到】 : 首先要根据exception确定是哪一种 OOME。 : 常见的 OOME 根据HEAP区域有两类:PermGen 和 Heap。PermGen 类的OOME只会出现在 : 有permgen概念的JVM,比如HOTSPOT。BEA 的 JROCKIT 不会出现这种问题。 : PermGen存放两种对象:Class object 和 interned String。大多数permGen OOME由前 : 者引起,根本原因是hotspot对 classloader 的 garbage collection 做的不是很好。 : 这种问题常出现于:1. 开发过程中反复deploy程序。2. 应用的high availability : strategy或者side-by-side deployment strategy 采用了抛弃classloader的设计。3. : 病态JSP,TAG, EJB compiler。 : PermGen OOME 是常见,well documented,但是普通人极难处理的问题。这类问题的根 : 源多数在于JVM, SERVER 和应用架构的弊病。其中应用架构问题,常见病因有:
|
i****k 发帖数: 804 | 8 Most server programs by definition are deal loops. That's what 24X7 means.
【在 F****n 的大作中提到】 : The most likely reason is that you have a dead loop in your code.
|
x****y 发帖数: 252 | 9 different solutions for different cases. |