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