Results 1 to 2 of 2
  1. #1
    Join Date
    Mar 2006

    Question Unanswered: Private memory and/or virtual address space exhausted


    We use DB2 8.2.6 on Windows 2000.

    We got following intermittent error in our production database.

    2009-04-29- E1032965H590 LEVEL: Severe (OS)
    PID : 3228 TID : 6420 PROC : db2syscs.exe
    APPHDL : 0-744 APPID: G15DC749.N50C.023D49023714
    FUNCTION: DB2 UDB, oper system services, getPrivateChunksFromOs, probe:100
    CALLED : OS, -, VirtualAlloc
    OSERR : 8 "Not enough storage is available to process this command."
    MESSAGE : Private memory and/or virtual address space exhausted
    DATA #1 : Requested size, PD_TYPE_MEM_REQUESTED_SIZE, 4 bytes

    These errors happened during one of our extreme peak load period. We also notice at that time the memeory usage as shown by Windows Task manager was around 1 GB . These errors disappered affter an hour or so. After this we have not got this error so far. We think users did not have visible impact because of this error - because no one came around our desk to annoy us!!.

    We do notice the error comes when db memeory utilisation (as shown by Windows Task manager) comes new 1 GB. Our server has 4GB RAM and 4GB Virtual memeory. Also there are is plenty of free memory in the server.

    In our instance the private memory settings are:

    MIN_PROV_MEM 32 * 4KB pages
    PRIV_MEM_THRESH 1296 * 4KB pages

    Any idea why we get these errors?


    Hari Kumar

  2. #2
    Join Date
    Aug 2008
    Toronto, Canada
    This memory allocation error is generated by Windows when address space is being exhausted. With 32-bit architecture, DB2 can access 2GB of memory by default. The errors are the result of running out of 2GB default address space limit available to 32-bit processes on Windows or memory fragmentation. There is a known issue which is fixed wtih JR24363 in fp15 and higher: IBM - JR24363: EXCESSIVE MEMORY FRAGMENTATION IN DB2SYSCS ADDRESS SPACE ON WINDOWS CAUSES MEMORY ALLOCATION FAILURES

    To take a full advantage of this APAR, the following changes are needed:
    db2set DB2MEMMAXFREE=2000000
    db2 update dbm cfg using PRIV_MEM_THRESH 500

    You may also consider using /3GB switch, if it's supported in your env. Take a look here: The DB2 UDB memory model

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts