故障現(xiàn)象
WAS 服務(wù)器連續(xù)發(fā)生本地內(nèi)存溢出,產(chǎn)生coredump 文件。拋出以下錯(cuò)誤:
1TISIGINFO Dump Event "systhrow" ( 0 0 0 4 0 0 0 0 ) D e t a i l " j a v a / l a n g / OutOfMemor yErr or" "nativ e memor y exhausted" received
分析過(guò)程
WAS 版本為:8.0.0.6,OS 版本為:AIX6.1 分析故障點(diǎn)的 coredump 文件:
<core.20150505 .095649 .7799012 .0001 .
dmp>(dbx)coremapMapping:Shared Memory (size=0x3b0) from(address): 0x30000000-0x300003b0Mapping: Shared Memory(size=0x800000) from(address):0x40000000-0x40800000Mapping: Shared Memory (size=0x800000) from (address): 0x50000000-0x50800000
發(fā)現(xiàn)理論上,每Shard Memory段應(yīng)該為 256M。但實(shí)際上,每段只用到了 8M,這個(gè)是造成本地內(nèi)存溢出的根本原因。
解決方案
WAS7 之后默認(rèn)為 Xcompressedrefs 模式, 會(huì)引起 bug:IV46157
◆調(diào)整 JVM 參數(shù)為 -Xnocompressedrefs 模式
升級(jí) WAS JDK 到 6.0.1 SR7 以上版本, 即為WAS 8.0.0.8