Help - Search - Members - Calendar
Full Version: memory segments using oracle 11g
Oracle DBA Forums > Oracle > Oracle Forum
nanjappan
Hello,

Following are the memory segments owned by the oracle 11g server when run on a HPUX 11.31i ia64 machine.

11g Memory segments (ipcs -ma):

T ID KEY MODE OWNER GROUP CREATOR CGROUP NATTCH SEGSZ CPID LPID ATIME DTIME CTIME
m 6094854 0x00000000 --rw-rw---- oracle oinstall oracle oinstall 23 6901760 11636 11709 1:28:20 1:28:13 1:28:03
m 884743 0x00000000 --rw-rw---- oracle oinstall oracle oinstall 23 3559424 11636 11709 1:28:20 1:28:13 1:28:03
m 622600 0x00000000 --rw-rw---- oracle oinstall oracle oinstall 23 2113536 11636 11709 1:28:20 1:28:13 1:28:03
m 524297 0x00000000 --rw-rw---- oracle oinstall oracle oinstall 23 8192 11636 11709 1:28:20 1:28:13 1:28:03
m 425994 0x00000000 --rw-rw---- oracle oinstall oracle oinstall 23 801112064 11636 11709 1:28:20 1:28:13 1:28:03
m 425995 0x43bc8914 --rw-rw---- oracle oinstall oracle oinstall 23 12288 11636 11709 1:28:20 1:28:20 1:28:03


I have two concerns/questions :

1. Although there are different IDs for the memory segments, I am not sure why five of the segments share the same "KEY" ?

2. Also I am trying to have whole oracle server process memory in one single segment. I have already set the HPUX shared memory maximum size (shmmax) to 3GB, still oracle 11g splits up the memory segments. Oracle memory management is not automatic (sga_target=0 and sga_max_size=772). Any suggestions to bring oracle memory into one segment would be great.

Thanks,
Nanja
dave
why does it matter if you have one or 5 segments?
nanjappan
I am trying to understand the performance of Oracle 11g or see if there is a performance difference in this case.

According to http://download.oracle.com/docs/cd/B28359_...9/appb_hpux.htm, with multiple memory segments, performance can potentially degrade...

Thanks,
Nanja
aussie_dba
"I am not sure why five of the segments share the same "KEY" "

That's a UNIX thing, they all do that. Fear not, it's all in the same heap.

"ipcs -ma"

I prefer ipcs -pmb, it shows the RAM segment owner names

CODE
root> ipcs -pmb

IPC status from /dev/kmem as of Mon Sep 10 16:45:16 2001
T      ID     KEY        MODE     OWNER  GROUP  SEGSZ  CPID  LPID
Shared Memory:
m   24064 0x4cb0be18 --rw-r----- oracle    dba 28975104  1836 23847
m       1 0x4e040002 --rw-rw-rw-   root   root    31008   572   572
m       2 0x411ca945 --rw-rw-rw-   root   root     8192   572   584
m    4611 0x0c6629c9 --rw-r-----   root   root  7216716  1346 23981
m       4 0x06347849 --rw-rw-rw-   root   root    77384  1346  1361


"2. Also I am trying to have whole oracle server process memory in one single segment. "

That makes no sense. The RAM is allocated, independently, by all regions.
nanjappan
This is what confuses me...

I use the same machine to play around with oracle 10g.
Oracle parameter : SGA_MAX_SIZE=1300M
Initial setting of HP UX Parameter : shmmax=1024M

It is seen from below that by increasing the shmmax value, the number of oracle-owned-memory-segments comes down to 1 from 3.

CODE
# ipcs -pmb
IPC status from /dev/kmem as of Mon Jun 30 23:31:49 2008
T         ID     KEY        MODE        OWNER     GROUP      SEGSZ  CPID  LPID
Shared Memory:
m          0 0x410c0e2d --rw-rw-rw-      root      root        348   911   911
m          1 0x4e0c0002 --rw-rw-rw-      root      root      61760   911   911
m          2 0x410c058c --rw-rw-rw-      root      root       8192   911   923
m          3 0x06347849 --rw-rw-rw-      root      root      65544  1651  1670
m      32772 0x0c6629c9 --rw-r-----      root      root   17870184  1658  1656
m     131077 0x490d001a --rw-r--r--      root      root      22908  1656  1697
m    6815750 0x00000000 --rw-r-----    oracle  oinstall   16777216 11579 11635
m    1179655 0x00000000 --rw-r-----    oracle  oinstall 1023410176 11579 11635
m     917512 0xf5af8a14 --rw-r-----    oracle  oinstall  369106944 11579 11635

# kctune -B shmmax=2048M
       * The automatic 'backup' configuration has been updated.
       * Future operations will update the backup without prompting.
       * The requested changes have been applied to the currently
         running configuration.
Tunable                 Value  Expression  Changes
shmmax   (before)  1024000000  1024M       Immed
         (now)     2048000000  2048M


[RESTART ORACLE SERVER INSTANCE]

CODE
# ipcs -pmb
IPC status from /dev/kmem as of Mon Jun 30 23:32:36 2008
T         ID     KEY        MODE        OWNER     GROUP      SEGSZ  CPID  LPID
Shared Memory:
m          0 0x410c0e2d --rw-rw-rw-      root      root        348   911   911
m          1 0x4e0c0002 --rw-rw-rw-      root      root      61760   911   911
m          2 0x410c058c --rw-rw-rw-      root      root       8192   911   923
m          3 0x06347849 --rw-rw-rw-      root      root      65544  1651  1670
m      32772 0x0c6629c9 --rw-r-----      root      root   17870184  1658  1656
m     131077 0x490d001a --rw-r--r--      root      root      22908  1656  1697
m    6848518 0xf5af8a14 --rw-r-----    oracle  oinstall 1392517120 11647 11677


But in 11g the number of memory segments remain the same (refer my earlier post). I tried increasing the SHMMAX up to 6GB, but still there are multiple memory segments with 11g.

Is it possible to make the number of memory segments used by oracle 11g as 1? If so how to do that?

Thanks,
Nanja
HAL9000
Nanja,

"with multiple memory segments, performance can potentially degrade..."

I did not see that in the link. Can you please cite it for me?

"It is seen from below that by increasing the shmmax value, the number of oracle-owned-memory-segments comes down to 1 from 3."

Just guessing, it could be that Oracle wants contiguous RAM, and it's taking smaller chunks because no single large chunk exists.

"Is it possible to make the number of memory segments used by oracle 11g as 1?"

That's controlled by the Oracle software, internally, and the only way to know is to open a Service Request on MetaLink.
nanjappan
Hi HAL9000,

Thanks for your response..

Sure, I meant the 3rd sentence under "B.1 HP-UX Shared Memory Segments for an Oracle Instance"

I am just wondering if it works in oracle 10g why not in 11g ?

Thanks again,
Nanja
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2014 Invision Power Services, Inc.