If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.

 
Go Back  dBforums > Database Server Software > DB2 > DB2 Memory math

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1 (permalink)  
Old 08-16-10, 13:21
DBFinder DBFinder is offline
Registered User
 
Join Date: Sep 2008
Location: Toronto,Canada
Posts: 606
DB2 Memory math

Hi all,

I have not much understanding of memeory used by DB2.

We have 4 production DB2 using 16 GB of physical RAM.

Which parameters and/or settings should I review for application heap size and utility heap sioze.

Actually on one DB we are having memory issues. I remember, few months ago IBM support had advised to free some memory from bufferpools for backup utility which worked like a charm. The senior DBA ( remote support ) had freed some buffrpool allocations.

I am not sure how to caculate these things. Can some one help me to start checking where the memory comes and where it goes.

One of our replication program is being set up and it is complaining of having not enough memory available

Quote:
FUNCTION: DB2 UDB, SQO Memory Management, SqloMemController::requestMemory, probe:50
MESSAGE : ZRC=0x8B0F0000=-1961951232=SQLO_NOMEM "No Memory Available"
DIA8300C A memory heap error has occurred.
DATA #1 : String, 28 bytes
Attempt to get memory failed
DB2 V 9.5.5 on WIN2K3

Regards and Thanks

DBFinder
Reply With Quote
  #2 (permalink)  
Old 08-16-10, 14:30
ARWinner ARWinner is offline
Registered User
 
Join Date: Jan 2003
Posts: 3,575
How many servers are you using? How many DB2 instances? And how many databases? Is it 32 or 64 bit? I need a clearer picture of your environment.

Andy
Reply With Quote
  #3 (permalink)  
Old 08-16-10, 14:33
DBFinder DBFinder is offline
Registered User
 
Join Date: Sep 2008
Location: Toronto,Canada
Posts: 606
On each server there is only one DB. One Partition and DB2 is 64 bit. One Instance on each server.

2 are POS dbs around 110 GB size at 100 transaction per second.

other 2 are gaming dbs 280 GB size with 240 transactions per second.

Regards

DBFinder
Reply With Quote
  #4 (permalink)  
Old 08-16-10, 14:37
ARWinner ARWinner is offline
Registered User
 
Join Date: Jan 2003
Posts: 3,575
One thing you can try that should give you some understanding is use db2top. On each server run "db2top -d <database>". Then press "m" to see how your memory is being used.

Andy
Reply With Quote
  #5 (permalink)  
Old 08-16-10, 14:46
DBFinder DBFinder is offline
Registered User
 
Join Date: Sep 2008
Location: Toronto,Canada
Posts: 606
How do we run db2top ?

Quote:
C:\Documents and Settings\db2admin>db2top
'db2top' is not recognized as an internal or external command,
operable program or batch file.
Reply With Quote
  #6 (permalink)  
Old 08-16-10, 14:56
ARWinner ARWinner is offline
Registered User
 
Join Date: Jan 2003
Posts: 3,575
Apparently db2top cannot be run on Windows. I guess you are stuck with db2pd or use the snapshot routines:

IBM DB2 9.5 Information Center for Linux, UNIX, and Windows

Andy
Reply With Quote
  #7 (permalink)  
Old 08-16-10, 20:46
DBFinder DBFinder is offline
Registered User
 
Join Date: Sep 2008
Location: Toronto,Canada
Posts: 606
But, my original ques was ,

Quote:
Which parameters and/or settings should I review for application heap size and utility heap sioze.
regards
Reply With Quote
  #8 (permalink)  
Old 08-16-10, 22:34
db2girl db2girl is offline
∞∞∞∞∞∞
 
Join Date: Aug 2008
Location: Toronto, Canada
Posts: 1,816
Quote:
Originally Posted by DBFinder View Post
But, my original ques was ,

Which parameters and/or settings should I review for application heap size and utility heap sioze.
application heap size - applheapsz (appl_memory/instance_memory if applheapsz is automatic)

utility heap size - util_heap_sz


I think the memory message you pasted should also contain the heap name.
Reply With Quote
  #9 (permalink)  
Old 08-16-10, 22:47
n_i n_i is offline
:-)
 
Join Date: Jun 2003
Location: Toronto, Canada
Posts: 4,449
I think your best bet would be to enable DB2 memory self-tuning and let it do the work. In particular, it will increase the utility heap when it's needed and reallocate that memory to other pools when utilities are not running.
Reply With Quote
  #10 (permalink)  
Old 08-16-10, 22:48
DBFinder DBFinder is offline
Registered User
 
Join Date: Sep 2008
Location: Toronto,Canada
Posts: 606
Bella,

Here is complete entry. Can you find for me which memory pool was out of memory.

Code:
2010-08-16-12.03.32.143000-240 I14671F988         LEVEL: Warning
PID     : 1216                 TID  : 8852        PROC : db2syscs.exe
INSTANCE: DB2                  NODE : 000         DB   : GC_PROD
APPHDL  : 0-31494              APPID: 10.90.1.21.41477.100816154811
AUTHID  : DB2ADMIN
EDUID   : 8852                 EDUNAME: db2agent (GC_PROD)
FUNCTION: DB2 UDB, SQO Memory Management, SqloMemController::requestMemory, probe:50
MESSAGE : ZRC=0x8B0F0000=-1961951232=SQLO_NOMEM "No Memory Available"
          DIA8300C A memory heap error has occurred.
DATA #1 : String, 28 bytes
Attempt to get memory failed
DATA #2 : unsigned integer, 8 bytes
4259840
DATA #3 : unsigned integer, 8 bytes
0
DATA #4 : String, 7 bytes
PRIVATE
DATA #5 : unsigned integer, 8 bytes
3166568448
DATA #6 : unsigned integer, 8 bytes
132841472
DATA #7 : unsigned integer, 8 bytes
14749073408
DATA #8 : unsigned integer, 8 bytes
14749331456
DATA #9 : unsigned integer, 8 bytes
135331840
regards

Last edited by DBFinder; 08-16-10 at 22:58.
Reply With Quote
  #11 (permalink)  
Old 08-16-10, 22:51
DBFinder DBFinder is offline
Registered User
 
Join Date: Sep 2008
Location: Toronto,Canada
Posts: 606
Quote:
Originally Posted by n_i View Post
I think your best bet would be to enable DB2 memory self-tuning and let it do the work. In particular, it will increase the utility heap when it's needed and reallocate that memory to other pools when utilities are not running.
I cannot do it. Very sensetive database. High activity gaming DB.

Even tried to tune some online backup command, always went wrong. That's why I need to understand more about memory.

regards
Reply With Quote
  #12 (permalink)  
Old 08-16-10, 22:54
db2girl db2girl is offline
∞∞∞∞∞∞
 
Join Date: Aug 2008
Location: Toronto, Canada
Posts: 1,816
Unfortunately, utility heap is not tuned by STMM, but it's a soft limit and can grow into overflow if there is still room
Reply With Quote
  #13 (permalink)  
Old 08-16-10, 23:06
db2girl db2girl is offline
∞∞∞∞∞∞
 
Join Date: Aug 2008
Location: Toronto, Canada
Posts: 1,816
Quote:
Originally Posted by DBFinder View Post
Bella,

Here is complete entry. Can you find for me which memory pool was out of memory.

Code:
2010-08-16-12.03.32.143000-240 I14671F988         LEVEL: Warning
PID     : 1216                 TID  : 8852        PROC : db2syscs.exe
INSTANCE: DB2                  NODE : 000         DB   : GC_PROD
APPHDL  : 0-31494              APPID: 10.90.1.21.41477.100816154811
AUTHID  : DB2ADMIN
EDUID   : 8852                 EDUNAME: db2agent (GC_PROD)
FUNCTION: DB2 UDB, SQO Memory Management, SqloMemController::requestMemory, probe:50
MESSAGE : ZRC=0x8B0F0000=-1961951232=SQLO_NOMEM "No Memory Available"
          DIA8300C A memory heap error has occurred.
DATA #1 : String, 28 bytes
Attempt to get memory failed
DATA #2 : unsigned integer, 8 bytes
4259840
DATA #3 : unsigned integer, 8 bytes
0
DATA #4 : String, 7 bytes
PRIVATE
DATA #5 : unsigned integer, 8 bytes
3166568448
DATA #6 : unsigned integer, 8 bytes
132841472
DATA #7 : unsigned integer, 8 bytes
14749073408
DATA #8 : unsigned integer, 8 bytes
14749331456
DATA #9 : unsigned integer, 8 bytes
135331840
regards


I think what this message is saying is that:

"PRIVATE" heap requested 4259840 bytes. It's currently using 14749073408 and the maximum allowed is 14749331456

14749331456 - 14749073408 = 258048 which is less than what it's trying to allocate.


As far as I know, this "PRIVATE" heap is not something you can configure (except for private sorts). I'll have to look into this further...


I think it's not a bad idea to open a pmr (not sure if it has to go to the replication group or db2, can start with db2)
Reply With Quote
  #14 (permalink)  
Old 08-16-10, 23:10
DBFinder DBFinder is offline
Registered User
 
Join Date: Sep 2008
Location: Toronto,Canada
Posts: 606
Surprisingly 'PRIVATE' is not known via sysibmadm views

Code:
POOL_ID        MEMORY_SIZE         

-------------- --------------------
APPLICATION                65667072
APPL_SHARED                33816576
BP                       9389080576
CAT_CACHE                   4325376
DATABASE                  100597760
LOCK_MGR                  282001408
OTHER                        196608
PACKAGE_CACHE             111083520
UTILITY                      851968
-----------------------------------
 TOTAL                   9987031040
Reply With Quote
  #15 (permalink)  
Old 08-16-10, 23:32
db2girl db2girl is offline
∞∞∞∞∞∞
 
Join Date: Aug 2008
Location: Toronto, Canada
Posts: 1,816
Quote:
Originally Posted by db2girl View Post
I think what this message is saying is that:

"PRIVATE" heap requested 4259840 bytes. It's currently using 14749073408 and the maximum allowed is 14749331456

14749331456 - 14749073408 = 258048 which is less than what it's trying to allocate.

It can't be using this much, I may not be reading the numbers correctly... Perhaps, the large number is your instance_memory setting


Try:
db2pd -dbptnmem
Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On