Process memory behaviour of Oracle

From: <pidmky_at_gmail.com>
Date: Mon, 14 Jan 2008 08:58:21 -0800 (PST)
Message-ID: <e4332e76-0d06-4531-8acf-cfbb4d384346@e23g2000prf.googlegroups.com>


Hi,

I have the following problem concerning memory of Oracle 9iR2 processs on a RHEL 4 Linux box: I have observed that the 24G RAM memory on the Oracle box is pretty full most of the time (c. 98%) and since the box is used to host Oracle processes only it comes as no surprise that after a ps/top analysis it is the c. 600 or so processes + handful of DB instances that appear to be consuming the memory. After taking a closer look (i.e., summing over V$SESSION PGA figures and cross checking with the OS using the V$PROCESS etc.) the numbers though do not add up, i.e., my UNIX/Oracle processes' memory consumption simply does not add up to 23.xG etc.

Then I tried the following: I wrote a small C program that acquires and the frees a large chunk of memory (e.g., 10G) and ran it as the Oracle user under which my DB runs. Not only could it allocate memory (which if it is 98% shouldn't happen, i.e., it ought to fail or produce a seg fault etc.) but once it had freed it again the RAM on the box (as reported by the Linux free command) remained low (e.g., 60%) for a long period of time (e.g., several days.) To rule out the effect of swapping I also disabled swap during this test and confirmed that my C program did in fact acquire the memory from RAM by checking top etc.

Is there any explanation for this behaviour ?

Any thoughts welcome,
Tony. Received on Mon Jan 14 2008 - 10:58:21 CST

Original text of this message