was内存溢出:native memory exhausted(本地溢出)

一、java.lang.OutOfMemoryError: native memory exhausted

Java 虚拟机初始堆大小和最大堆大小不能盲目设置
以前碰到不少做J2EE应用的同事。 他们在碰到WAS跑起来很慢的时候,就会考虑到WAS的内存不够用。从而在增加内存后,盲目设置WAS的Java虚拟机初始堆大小和最大堆大小。
以前我见过的一个烟草的项目就是这样。
服务器有8G的内存 , 然后就把WAS的内存堆大小设置到4G。
结果导致应用跑起来的时候,就跟发羊癫风似的。
什么叫发羊癫风呢?
就是一会跑的很快, 跑着跑着就白屏了。 等上个1分钟后,又可以跑的很快。
这种情况出现的原因就是WAS的内存堆大小设置过大。 从而导致Java虚拟机做内存回收工作的时候,耗费时间过多。 这样就会让用户在访问应用的时候会出现白屏的情况。
一般情况下。 一个JVM的内存堆大小,最大不要超过1024M, 再大就得不偿失了。
后来的解决的方法就是在一个服务器上作多个WAS服务的集群,每个服务内存设置1G。这样跑起来就不会出现白屏了。



可以:初始堆:256M,最大堆:512M

可以:初始堆:1024M,最大堆:2048M

不行:初始堆:2048M,最大堆:4096M



具体根据机器性能决定,无需设置太大,设置过大会会报:
java.lang.OutOfMemoryError: native memory exhausted
并且was下会产生下列文件:
heapdump.20151228.150706.32210.0001.phd
javacore.20151228.150706.32210.0002.txt
Snap.20151228.150706.32210.0003.trc

具体配置点见截图:




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值