PM95296: FORWARD FIT PM88804 DISCARDDATA TRIGGERED BY MONITOR STATUS FORWARD FIT PM86952 CONTRACTION OF ALL POOL SIZES

A fix is available

Subscribe

You can track all active APARs for this component.

APAR status

  • Closed as program error.

Error description

  • Unaccounted CPU resulting from DISCARDDATA of thread pool
    storage and the resulting first reference page faults which
    occur when pages are reused.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: All DB2 V11 users.                           *
    ****************************************************************
    * PROBLEM DESCRIPTION: (1)                                     *
    *                      Frequent thread terminations without    *
    *                      re-use may result in significant CPU    *
    *                      consumption as 64bit thread pool        *
    *                      storage is freed and REAL frames are    *
    *                      unbacked. Subsequent page faults result *
    *                      in CPU Unaccounted time.                *
    *                      (2)                                     *
    *                      Thread 64bit Shared Variable storage    *
    *                      slowly increases over time as observed  *
    *                      in IFCID225 record, field QW0225SV.     *
    *                      (3)                                     *
    *                      ABEND0C4 DSNSVBK when the thread is     *
    *                      canceled while performing contraction   *
    *                      and DSNSCON2 FRR returns to DSNSVBK     *
    *                      with a zero recovery stack pointer.     *
    *                      Since contraction is likely during      *
    *                      a MUST COMPLETE process, DB2 may        *
    *                      terminate.                              *
    *                      (4)                                     *
    *                      DSNSVSVB ABEND04E RC00E2000C when the   *
    *                      thread encounters Pool Full.            *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    (1)
    When threads terminate, their pool storage may either be
    completely freed if the thread is not cached for reuse, or a
    portion may be freed.  In either case, storage which is only
    virtually freed by DB2 since it is submanaged, will have its
    REAL frames unbacked in many cases.  This unbacking requires RSM
    latch serialization and also results in a pagefault when those
    pages are again used.  This whole process can show significant
    CPU usage depending on the number of threads and their
    allocation/deallocation frequency.  Similarly, thread
    contraction which may occur at specific commit frequencies, also
    may result in pool storage being virtually freed with the REAL
    frames unbacked.  REALSTORAGE_MANAGEMENT which has default of
    AUTO, should not result in the discard of REAL frames unless the
    LPAR comes under stress and begins paging or nears the
    REALSTORAGE_MAX value if specified.
    (2)
    The original design implemented for DB2 storage pool
    contraction, did not include those size slots which contain
    multiple fixed blocks per expansion segment. In analyzing
    various dumps from customers and internal testing, it was
    observed that pools sometimes had significant FREE storage tied
    up in these slots.  By contracting these slots, REAL FRAME usage
    may be reduced since the corresponding virtual storage would be
    available for reuse by other threads, thus not having to back
    additional frames.  Reducing the virtual storage within a given
    pool could potentially prevent requests from being abend04E
    with RC00E2000C, pool full condition.
    (3)
    When a thread attempts to get storage from a pool and finds it
    is full, it will synchronously call contraction for that pool.
    If it is canceled while in the contraction module, that FRR
    recovers but does not handle the recovery stack correctly.
    (4)
    When threads are attempting to get 64bit storage from a system
    level pool and it is full, they will all try to perform
    contraction on that pool but only the one succeeds.  The
    remaining threads are not allowed to wait.  Instead, they
    return and retry their storage request but the pool is
    still full and they abend04E RC00E2000C.
    

Problem conclusion

  • (1)
    This apar changes the way 64 bit Above-the-bar (ATB) real
    storage frames are managed by DB2 based on the DB2 zparms
    REALSTORAGE_MANAGEMENT,REALSTORAGE_MAX and general RSM LPAR
    storage monitor fields.  DB2 ATB storage management is changed
    to no longer issue an IARV64 DISCARDDATA request to free real
    storage frames unless the DB2 storage monitor has detected that
    DISCARD MODE should be turned ON. When DISCARD MODE is ON the
    member will return to the same behavior it had prior to PM95296
    and issue an IARV64 DISCARDDATA request when freeing storage.
    Not freeing the real storage frames can improve system
    performance due to a significant reduction in first reference
    page faults, RSM lock contention, and uncaptured CPU time.
    *** NOTE ***
    PM95296 may result in higher REAL FRAME counts being reported by
    DB2 monitor reports and RMF, especially in environments that
    never page to aux.  For those customers who experience frequent
    or periodic paging, the counts may not be significantly higher
    but will likely still be higher than before PM95296.
    The major reporting fields for 64 bit storage are:
    qw0225ShrStg_Real - Shared storage most heavily used for threads
                        will likely show the most increase.
    qw0225ComStg_Real - High Common
    qw0225PriStg_Real - High address space private
    (2)
    This apar extends the contraction function to include all slot
    sizes, those with multiple blocks per segment and those with one
    block per expansion segment.
    (3)
    Contraction will not retry canceled threads.
    (4)
    Contraction will be serialized and multiple threads contracting
    the same pool, will be allowed to wait while that occurs.
    

Temporary fix

Comments

  • ž**** PE14/06/24 FIX IN ERROR. SEE APAR PI14696  FOR DESCRIPTION
    

APAR Information

  • APAR number

    PM95296

  • Reported component name

    DB2 OS/390 & Z/

  • Reported component ID

    5740XYR00

  • Reported release

    B10

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2013-08-16

  • Closed date

    2013-10-03

  • Last modified date

    2014-06-24

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

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

    UK98204

Modules/Macros

  • DSNLTMSC DSNSCON2 DSNSINTM DSNSSTUP DSNSVSFB DSNSVSFM DSNSVSGM
    DSNSVSPC DSNSVSPP DSNSVSVB DSNSVSVP DSNTXSTB
    

Fix information

  • Fixed component name

    DB2 OS/390 & Z/

  • Fixed component ID

    5740XYR00

Applicable component levels

  • RB10 PSY UK98204

       UP14/01/10 P F401

Fix is available

  • Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.



Rate this page:

(0 users)Average rating

Document information


More support for:

DB2 for z/OS

Software version:

B10

Reference #:

PM95296

Modified date:

2014-06-24

Translate my page

Machine Translation

Content navigation