db2 V9.5 SQL1084C

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Lennart

    db2 V9.5 SQL1084C


    A while back I raised a discussion ( http://tinyurl.com/4h3qg7 )
    regarding SQL1084C Shared memory segments cannot be allocated. We
    still have this problem, so I thought I should bump the thread.

    Current status:
    [db2inst1@wbv7 ~/lelle/scripts]$ uname -a
    Linux wbv7 2.6.9-67.ELsmp #1 SMP Wed Nov 7 13:58:04 EST 2007 i686 i686
    i386 GNU/Linux

    [db2inst1@wbv7 ~/lelle/scripts]$ db2level
    DB21085I Instance "db2inst1" uses "32" bits and DB2 code release
    "SQL09050"
    with level identifier "03010107".
    Informational tokens are "DB2 v9.5.0.0", "s071001", "LINUXIA329 5", and
    Fix Pack
    "0".
    Product is installed at "/opt/IBM/db2/V9.5".

    [db2inst1@wbv7 ~/lelle/scripts]$ cat /proc/meminfo
    MemTotal: 3895372 kB

    [db2inst1@wbv7 ~/lelle/scripts]$ cat /proc/sys/kernel/shmmax
    3221225472

    Thus, we have 4Gb physical memory, and are allowed to use 3Gb shared
    memory.

    Last time I ran into this problem I did some monitoring:

    [db2inst1@wbv7 ~/lelle/scripts]$ cat determine_db2_m emory.sh
    #!/bin/sh

    echo "Instance memory"
    db2mtrk -i -v | grep "Total:"

    echo "Database memory"
    db2mtrk -d -v | grep "Total:" | awk '{ sum += $2 } END { print "
    Total: " sum }'

    echo "Agent private memory"
    db2mtrk -p -v | grep "Total:" | awk '{ sum += $2 } END { print "
    Total: " sum }'
    [db2inst1@wbv7 ~/lelle/scripts]$ ./determine_db2_m emory.sh
    Instance memory
    Total: 21364736 bytes
    Database memory
    Total: 413859840
    Agent private memory
    Total: 16187392

    This sums up to well under 500Mb of memory, which would leave us with
    2.5Gb free shared mem. Now this leaves me with a number of questions:

    1. Is db2 using shared memory other than that shown by db2mtrk? If so,
    how can I determine how much memory it is using?

    2. Is db2 unable to use the additional 2.5Gb shared memory?

    Any thoughts anyone?
  • Lennart

    #2
    Re: db2 V9.5 SQL1084C

    On Sep 29, 4:06 pm, Lennart <Erik.Lennart.J ons...@gmail.co mwrote:
    [...]
    2. Is db2 unable to use the additional 2.5Gb shared memory?
    >
    Judging from dbm cfg it looks as if it is willing to use it:

    [db2inst1@wbv7 ~]$ db2 get dbm cfg show detail | grep INSTANCE
    Size of instance shared memory (4KB) (INSTANCE_MEMOR Y) =
    AUTOMATIC(77544 1) AUTOMATIC(77544 1)


    /Lennart

    Comment

    • Liam Finnie

      #3
      Re: db2 V9.5 SQL1084C

      On Sep 29, 12:18 pm, Lennart <Erik.Lennart.J ons...@gmail.co mwrote:
      On Sep 29, 4:06 pm, Lennart <Erik.Lennart.J ons...@gmail.co mwrote:
      [...]
      >
      2. Is db2 unable to use the additional 2.5Gb shared memory?
      >
      Judging from dbm cfg it looks as if it is willing to use it:
      >
      [db2inst1@wbv7 ~]$ db2 get dbm cfg show detail | grep INSTANCE
      Size of instance shared memory (4KB) (INSTANCE_MEMOR Y) =
      AUTOMATIC(77544 1) AUTOMATIC(77544 1)
      >
      /Lennart
      Hi Lennart,

      I notice now that you're using 32-bit Linux - didn't realize that in
      your previous posts. That's likely the reason why you could activate
      more databases in previous releases - before 9.5, each database had
      it's own address space, and agents working for a particular database
      only map in the address space for the database they are working on.
      With the threaded engine in 9.5, all database address spaces are
      contained in a single process address space, which limits how many
      databases you can activate. See the following link for more details:


      db2mtrk won't show all memory allocated by the server. For more
      accurate counters, you should use either the admin_get_dbp_m em_usage()
      table function, or use 'db2pd -dbptnmem'.

      Cheers,
      Liam.

      Comment

      • Lennart

        #4
        Re: db2 V9.5 SQL1084C

        On 29 Sep, 22:20, Liam Finnie <lfin...@ca.ibm .comwrote:
        On Sep 29, 12:18 pm, Lennart <Erik.Lennart.J ons...@gmail.co mwrote:
        >
        On Sep 29, 4:06 pm, Lennart <Erik.Lennart.J ons...@gmail.co mwrote:
        [...]
        >
        2. Is db2 unable to use the additional 2.5Gb shared memory?
        >
        Judging from dbm cfg it looks as if it is willing to use it:
        >
        [db2inst1@wbv7 ~]$ db2 get dbm cfg show detail | grep INSTANCE
         Size of instance shared memory (4KB)  (INSTANCE_MEMOR Y) =
        AUTOMATIC(77544 1)          AUTOMATIC(77544 1)
        >
        /Lennart
        >
        Hi Lennart,
        >
        I notice now that you're using 32-bit Linux - didn't realize that in
        your previous posts.  That's likely the reason why you could activate
        more databases in previous releases - before 9.5, each database had
        it's own address space, and agents working for a particular database
        only map in the address space for the database they are working on.
        With the threaded engine in 9.5, all database address spaces are
        contained in a single process address space, which limits how many
        databases you can activate.  See the following link for more details:http://publib.boulder.ibm.com/infoce...dex.jsp?topic=...
        >
        db2mtrk won't show all memory allocated by the server.  For more
        accurate counters, you should use either the admin_get_dbp_m em_usage()
        table function, or use 'db2pd -dbptnmem'.
        >
        Cheers,
        Liam.
        Thanx a lot Liam, this explain the problems I'm facing.


        /Lennart

        Comment

        Working...