Wls815/AIX: Java Core And Out Of Memory Due to Fragment (Doc ID 792960.1)

To BottomTo Bottom

In this Document


Symptoms

Cause

Solution


APPLIES TO:

Oracle Weblogic Server - Version 8.1 and later
IBM AIX on POWER Systems (64-bit)
z*OBSOLETE: IBM AIX5L Based Systems (32-bit)
IBM AIX Based Systems (64-bit)IBM AIX5L Based Systems (32-bit)

SYMPTOMS

Get OutOfMemory error even there are a lot of free spaces in JVM heap when using IBM JDK on AIX. We can see it from java core file looks like:

1TISIGINFO OUTOFMEMORY received

1STHEAPFREE Bytes of Heap Space Free: 43069110
1STHEAPALLOC Bytes of Heap Space Allocated: 7ffffa00

gc trace appear:

<AF[5007]: Allocation Failure. need 19660808 bytes, 233 ms since last AF> 
<AF[5008]: Allocation Failure. need 16155496 bytes, 388 ms since last AF>

CAUSE

The issue is caused by IBM JDK heap fragmentation.

SOLUTION

For a large Java application, the default kCluster space might not be sufficient to allocate all
classblocks. Use the -Xk and -Xp command-line options to specify kCluster and pCluster sizes.

For example: -Xknnnn

where nnnn specifies the maximum number of classes the kCluster will contain. -Xk instructs the JVM to allocate space for nnnn class blocks in kCluster.

GC trace data obtained by setting -Dibm.dg.trc.print=st_verify (for more information about GC tracing, see “Tracing” on page 310) provides a guide for the optimum value of the nnnn parameter. For example:: <GC(VFY-SUM): pinned=4265(classes=3955/freeclasses=0) dosed=10388 movable=1233792 free=5658>

The ’pinned/classes’ size is about the correct size needed for the -Xk parameter. You are recommended to add 10% to the reported value (3955). So, in this example, -Xk4200 would be a good setting.

The difference between pinned (=4265) and classes (=3955) provides a guide for the initial size of pCluster, although because each object might be different in size it is hard to predict the requirements for the pCluster and pCluster overflow options. You can specify the pCluster and pCluster overflow sizes by the -Xp command-line option:

-Xpiiii[K][,oooo[K]]

where iiii specifies the size of the initial pCluster in KB and oooo optionally specifies the size of overflow (subsequent) pClusters in KB. Default values of iiii and oooo are 16 KB and 2 KB respectively .

Where your application suffers from heap fragmentation, use GC trace and specify the -Xk option. If the problem persists, experiment with higher initial pCluster settings and overflow pCluster sizes.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值