| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Mailing Lists -> Oracle-L -> Re: Memory usage for Oracle User Process
Database is version 8.1.6 on Solaris 2.6
TIA,
Michael
Michael,
I believe that you must be monitoring your Oracle processes
using top or some other Unix monitoring tool. If you look into
the virtual memory model of a Unix process , the shared memory
is a part of it ( A Unix process has 3 main segments - text
segment, data segment and stack segment and the shared memory
fits between the text and the stack segment ).
My point is that the shared memory ( or the SGA ) is also
reported as a part of the memory being consumed by the process.
You might want to look into a Unix internals book ( I like
Maurice Bach even though it is slightly outdated ).
For finding the exact amount of memory being used by the Oracle
process, you can use the following :
On Solaris ( this won't work on HP ), find the PID of the
process using ps and use the pmap utility to generate a
process map as follows :
/usr/proc/bin/pmap /proc/<PID>
The pmap output will include a line of the type :
<address> <memory> read/write/exec/shared [ shmid=<address> ]
The <memory> is the memory used by the shared memory segment
Subtract it from the total to get the memory used by the
Oracle process.
Note : On HP-Unix, top reports the actual memory being
used by the process unlike Sun Solaris.
Regards,
Anil Sikri
![]() |
![]() |