What does SNAP_GET_DBM return in the COMM_PRIVATE_MEM element

I have been recently tasked with creation of an early warning solution for a memory condition from which some of our DB2 databases have been occasionally suffering. Once the condition is encountered, the only resolution is to restart the instance which can cause an impact.

While not a solution for the root cause, an early warning would make it possible for us to become aware of the condition and attempt to resolve it outside of business hours in a planned manner. We decided to use our monitoring platform, Foglight, to detect and issue alerts. Unfortunately, none of the data collections included with Foglight’s DB2 cartridge contain all of the data needed to determine if the condition is occurring.

Because of that, I had to create what Foglight calls a User Defined Collection. While I have been working on creating that UDC, I have happened on the COMM_PRIVATE_MEM monitoring element that is part of the data set returned by the SNAP_GET_DBM function. To me, the description of the element in DB2 Knowledge Center was not quite clear, and there is no mention of the units of the returned value. For anyone else who may be wondering about the same, the element contains the same data as in the PRIVATE field in the output of db2pd -dbptnmem and the value returned by SNAP_GET_DBM is in bytes.

PS N:\> db2 "select comm_private_mem from table(sysproc.snap_get_dbm(-1)) as t WITH UR"

  1 record(s) selected.

PS N:\> db2pd -dbptnmem

Database Member 0 -- Active -- Up 0 days 20:34:18 -- Date 2020-08-31-

Database Member Memory Controller Statistics

Controller Automatic: N
Controller License Limit: Y
Controller Limit Enforced: Y

Memory Limit:         5242880 KB
Current usage:        1897280 KB
HWM usage:            1897280 KB
Cached memory:        325760 KB

Individual Memory Consumers:

Name             Mem Used (KB) HWM Used (KB) Cached (KB)
APPL-SAMPLE             160064        160064      158592
DBMS-TEST               149120         14912       10304
FMP_RESOURCES            22528         22528           0
PRIVATE                  18048         18048        2112
DB-SAMPLE              1547520       1547520      154752
PS N:\> 18481152 / 1KB
PS N:\>
Luke Numrych
Luke Numrych

Luke Numrych has been employed in various IT fields ranging from mainframe operations to software development since 1995. He has been involved in supporting DB2 LUW on Windows since the beginning of 2011, transitioning fully to a production support DBA for DB2 databases in an OLTP environment in March of 2012.
Currently Luke is a Senior DB Engineer for a company in the Financial Services sector.

Luke is a member and, since 2015, Secretary of the Wisconsin DB2 Users’ Group.

Articles: 5

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.