IBM Support

IZ76742: DELAYED CLASSLOADER UNLOADING WITH -XGCPOLICY:GENCON

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Error Message: N/A
    .
    Stack Trace: N/A
    .
    Not enough global GC's are kicked off with the gencon GC policy
    causing a large number of classloaders to accumulate.  This
    build up of classloaders causes a native memory increase which
    could possibly lead to an out of memory.
    

Local fix

  • Use a different GC policy (e.g. use -Xgcpolicy:optavgpause)
    

Problem summary

  • The problem is caused when there are a large number of
    classloaders that are being created within a small timeframe.
    The gencon gcpolicy is a based on a generational garbage
    collection strategy which is designed for maximizing application
    runtime and minimizing frequent global gcs.
    As classloader unloading only occurs during a global gc, if
    there are thousands of classloaders being created and discarded
    between global gc events this can lead to high native memory
    overhead, as a portion of the classloader is stored in native
    memory, and potentially lead to an out of memory.
    This can also lead to pause times in a global gc if there are a
    large number of classloaders to be unloaded.  This can be seen
    in the verbosegc logs with the GCMV analyzer or viewing the logs
    and spotting events like this :
        <classloadersunloaded count="249805" timetakenms="2047.082"
    />
    Time and number of classloaders unloaded will be application
    dependent.
    

Problem conclusion

  • This defect will be fixed in:
    5.0.0 SR9
    6.0.0 SR3
    .
    There is a java command line option available for tuning the
    frequency that a global gc will take place based on the
    classloader creation rate.
    -Xgc:classUnloadingKickoffThreshold=<number>
    The setting of this value will be completely dependent on the
    application and the desired frequency of global gc. More
    information on gcpolicys can be found here :
    http://www.ibm.com/developerworks/java/library/j-ibmjava2/
    Analyzing if this option is for you can be performed on
    verbosegc logs by Garbage Collection and Memory Visualizer
    (GCMV) available through the IBM Support Assistant.
    http://www-01.ibm.com/software/support/isa/
    .
    To obtain the fix:
    Install build 20100603 or later
    

Temporary fix

Comments

APAR Information

  • APAR number

    IZ76742

  • Reported component name

    J9 COMMON CODE

  • Reported component ID

    620700127

  • Reported release

    600

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2010-06-02

  • Closed date

    2010-06-08

  • Last modified date

    2010-06-08

  • APAR is sysrouted FROM one or more of the following:

    IZ76735

  • APAR is sysrouted TO one or more of the following:

Fix information

  • Fixed component name

    J9 COMMON CODE

  • Fixed component ID

    620700127

Applicable component levels

  • R600 PSN

       UP

[{"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSCVQ3W","label":"Virtual Machine"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"6.0","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
08 June 2010