DB2 - Problem description
Problem IC73163 | Status: Closed |
HIGH MEMORY ALLOCATION WHILE PROCESSING TABLE QUEUE ( TQ ) SPILLS ON DPF SYSTEMS | |
product: | |
DB2 FOR LUW / DB2FORLUW / 970 - DB2 | |
Problem description: | |
On Version 9.7, the temporary tables from Table Queue spills are compressed. The compression process requires memory allocations to create the compression dictionary for the TEMP table. Table Queue spills can have different characteristics, such that: 1. A large number of temporary tables may be created simultaneously, one per target partition. 2. the tables may not grow quickly. This can result in excessive concurrently allocated memory for building compression dictionaries on a large DPF system, thereby resulting in errors from memory exhaustion and performance problems from paging. The purpose of this APAR is to disable compression of temporary tables from TQ spills. Diagnostics: 1. The Database Heap (dbheap) is large or has a large high water mark. The value is rarely above 500MB on most systems. Use the following to monitor : - db2pd -db <database> -mempools, check the PhySz and and PhyHWM for the "dbh" memory pool - select pool_watermark from sysibmadm.snapdb_memory_pool where POOL_ID="'DATABASE'" 2. Check for a large number of the following block allocations (Note the Size of 2.8MB, and File ID of 1008378243) - db2pd -db <database> -memb 2 (this must be executed on a partition with high current dbheap usage) Address DataAddress PoolID PoolName BlkAge Size(Bytes) I LOC File 0x0700000106CBFFC8 0x0700000106CBFFE0 2 dbh 36997 2883584 1 138 1008378243 0x070000010720FFC8 0x070000010720FFE0 2 dbh 36883 2883584 1 138 1008378243 0x07000000F800FFC8 0x07000000F800FFE0 2 dbh 36870 2883584 1 138 1008378243 ... Memory blocks sorted by size for dbh pool: PoolID PoolName TotalSize(Bytes) TotalCount LOC File 2 dbh 507510784 176 138 1008378243 | |
Problem Summary: | |
**************************************************************** * USERS AFFECTED: * * All DPF systems are affected * **************************************************************** * PROBLEM DESCRIPTION: * * See Error Description * **************************************************************** * RECOMMENDATION: * * Use the following workaround: * * db2set DB2_ROWCOMP_TEMP="tq=no" * * This requires recycling the DB2 instance. * * After upgrading to a level containing the APAR, unset the * * registry variable with: * * db2set DB2_ROWCOMP_TEMP= * **************************************************************** | |
Local Fix: | |
A temporary workaround is available through an undocumented registry variable: db2set DB2_ROWCOMP_TEMP="tq=no" This requires recycling the instance (db2stop, db2start). It is recommended to upgrade to a fix pack, once its available, and to unset the registry variable as follows: db2set DB2_ROWCOMP_TEMP= | |
available fix packs: | |
DB2 Version 9.7 Fix Pack 4 for Linux, UNIX, and Windows | |
Solution | |
Problem First Fixed in DB2 UDB Version 9.7 Fix Pack 4 | |
Workaround | |
See Recommendation | |
BUG-Tracking | |
forerunner : APAR is sysrouted TO one or more of the following: IC73304 follow-up : | |
Timestamps | |
Date - problem reported : Date - problem closed : Date - last modified : | 09.12.2010 21.04.2011 21.04.2011 |
Problem solved at the following versions (IBM BugInfos) | |
9.7.FP4 | |
Problem solved according to the fixlist(s) of the following version(s) | |
9.7.0.4 |