-
semaphore locked
Hi Friends,
ORACLE 10g Linux RHEL 4.6
I issue command # ipcs -a and the following is the result :
[root@prod1 ~]# ipcs -a
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x00000000 524288 gdm 600 393216 2 dest
0xf8fdbf50 557057 oracle 660 1075838976 46
------ Semaphore Arrays --------
key semid owner perms nsems
0xcbb4e678 229376 oracle 660 204
------ Message Queues --------
key msqid owner perms used-bytes messages
==================
I noticed that there is 1075838976 used by oracle? Is the the physical memory?
But when I issue TOP commnad , I can see that the used memory is almost 4GB
Mem: 4150328k total, 3922364k used, 227964k free, 28336k buffers
Where are the other memory users? If I shutdown both OracleDB and OracleApps (EBS), The memory held is still 2GB and the ipcs -a commnad does not show any memory holders. Why is the memory being locked-in?
Please help
-
Shared memory segment is always allocated with the same size as you maximum sga, it does not mean that all memory is used.
SGA is not pinned into the memory at the startup unless you use sga_lock=true and (i am not 100% sure about that) hugemem pages.
As far as mistery regarding where is the memory , I have spent hours with the oracle support, many tar's later I have realized that nobody knows much about it besides the fact that top and free do not report memory allocation the same way as oracle is using it. It is due to kernel internals, you can really get into it if you want to, you have to account for cache, buffers, dirty pages, etc,
I use free command , i look at the free memory +- buffers / cache. After database stopped, cached bufferes are not being released immediately, it will be cached until memory is needed.
Pages allocate to cache should be given back to the application if memory is needed.
-