RE: Oracle processes using more than 350Mb memory

  • From: "Bobak, Mark" <Mark.Bobak@xxxxxxxxxxxxxxx>
  • To: <vvardhineni@xxxxxxxxx>, <oracle-l@xxxxxxxxxxxxx>
  • Date: Thu, 12 Oct 2006 20:06:48 -0400

You didn't mention what platform / OS you're running (always include
that info!), but based on your mention of 'top', I'm going to guess it's
a flavor of unix.
 
top doesn't accurately represent the size of an Oracle process, cause
all oracle processes attach to the SGA's shared memory segments, so,
they all report a larger amount of memory than that individual process
is actually consuming.  If you have a 1/2 GB SGA, and there are 100
oracle processes, using reporting tools like top, you may think Oracle
processes are consuming 51200MB of RAM.  On a box w/ 2GB of RAM,
clearly, that can't be right.  That's cause that 512MB of RAM dedicated
to the SGA got counted in every oracle process's memory map, but it's
shared, it's only in memory once.
 
On Solaris (and probably other flavors of unix), try:
pmap -x <pid of oracle process>
 
Look at the pmap output, and discard the line(s) where the shared memory
is counted.  That will give you a better idea of per process memory
usage.
 
Hope that helps,
 
-Mark
 
PS  There was very recently a lengthy thread about the inadequacies of
memory accounting under Linux.  If you're on Linux, you may want to
search the archives for that thread.
 

--

Mark J. Bobak

Senior Oracle Architect

ProQuest Information & Learning

There is nothing so useless as doing efficiently that which shouldn't be
done at all.  -Peter F. Drucker, 1909-2005

 

________________________________

From: oracle-l-bounce@xxxxxxxxxxxxx
[mailto:oracle-l-bounce@xxxxxxxxxxxxx] On Behalf Of Vijaya Vardhineni
Sent: Thursday, October 12, 2006 7:41 PM
To: oracle-l@xxxxxxxxxxxxx
Subject: Oracle processes using more than 350Mb memory


Hi
  On one of our database servers, we just have only one Oracle 9.2.0.6
database with the following memory parameters.
 
pga_aggregate_target=104857600
shared_pool_size = 117440512
db_cache_size=251658240
large_pool_size=16777216
java_pool_size=67108864
 
Top shows that some of the oracle processes are taking more than 350Mb
memory.  These are not the back ground processes associated with the
instance.  Database server has only 2Gb RAM.  Can someone explain me
what could be causing such a high memory usage. 
 
Regards
Vijay
 

Other related posts: