I am working on Oracle 2 node RAC 10.2.0.4 on Solaris 10 T2000 kit.
The box has around 32G of memory of which 24G is used by oracle user. There is 3G of free memory on the box.
Sga max is set to 5G and while checking v$pgastat i see that maximum pga memory memory allocated was 6.5G. So oracle database is using around 12G of memory. There are no other processes running on the box except for the clusterware processes and the database.
There are around 2500 connections to this instance.
From the ps -ef OS command I see around 300 each of these connections.
When I check prstat for specific /oracle/product/cluster/jdk/jre/bin/sparcv9/java process I see that
For /usr/bin/ssh process
I am not sure about how the remaining 12G is used by oracle sessions?
How can I confirm the total memory usage by java process and the memory usage by clusterware?
Am I missing something here?
Last edited by DukeNuke2; 09-28-2010 at 02:23 PM..
Some diagnostic tools (like prstat for example) are summing (incorrectly) the shared memory for every process attached to it.
So probably you have more free memory - use sar (-r) or vmstat (free) to check the memory usage.
So seems like there is around 3G free memory which does match with the vmstat o/p
I am concerned about this issue as we did face memory contingency on this node when the other node failed over resulting in around 5000 sessions using this node.
Sessions were failing constantly due to memory issues, the issue was sorted only after fixing the other node. There was huge amount of swapping going on too.
sga max is set to 5G which is 1/6th of total RAM size. So this would mean more than 25G is consumed by PGA when failover occurs but when I check the PGA usage on both the instances it is around 6G per instance, so the combined usage is less than 12G and thats the reason I am confused.
So I am not sure whether there is some other clusterware process or java process that is consuming all the memory. From the ps -ef OS command I see around 300 each of these connections.
So I am not sure how to check the total memory consumption of these processes as I cannot sum them as this might give me a false value due to child processes involved. Is there any way for me to identify the actual memory usage of these processes?
Last edited by radoulov; 09-29-2010 at 05:14 AM..
Reason: Added code tags.
[...]
Sessions were failing constantly due to memory issues
Could you provide more details - what are the exact error messages?
Quote:
There was huge amount of swapping going on too
Which command you use to check if swapping occurs?
Quote:
So this would mean more than 25G is consumed by PGA when failover occurs
[...]
You don't have enough evidence for now.
Quote:
when I check the PGA usage on both the instances it is around 6G per instance,
so the combined usage is less than 12G and thats the reason I am confused
And how do you check the PGA status?
Quote:
So I am not sure how to check the total memory consumption of these processes as I cannot sum them
as this might give me a false value due to child processes involved
Why do you care for child processes? What's the sum of the memory used by these processes?
Could you provide more details - what are the exact error messages?
We were receiving out of process memory errors - unable to allocate .. bytes of memory for PGA
Quote:
Which command you use to check if swapping occurs?
vmstat - sr was increasing constantly and used oracle EM to monitor memory usage
Quote:
So this would mean more than 25G is consumed by PGA when failover occurs
Yes I cant comment on this now as I dont have facts for this.
Quote:
And how do you check the PGA status?
I am an Oracle DBA with little knowledge on Unix. I can check within Oracle by checking v$pgastat , v$process etc
Quote:
Why do you care for child processes? What's the sum of the memory used by these processes?
As I said earlier I see 259 java processes each consuming 26M RSS which comes to 6.7G.
There are same number of ssh processes each consuming around 2.5M which comes to 650M.
Is there any solaris command that will directly give the sum of memory used by all these processes?
I am using something like this to calculate the total memory usage of these processes
Based on the average RSS size I am multuiplying it by total processes to compute total memory usage of these processes, is this the right way of computing the memory usage of these processes?
We were receiving out of process memory errors - unable to allocate .. bytes of memory for PGA
Could you provide the exact error code and message (ORA- ...)?
Quote:
vmstat - sr was increasing constantly and used oracle EM to monitor memory usage
The scan rate is not enough, check if si/so have values different than 0
(or if pi/po have high values) with vmstat -S.
Quote:
I can check within Oracle by checking v$pgastat , v$process etc
Could you post the output from:
Quote:
Based on the average RSS size I am multuiplying it by total processes to compute total memory usage
of these processes, is this the right way of computing the memory usage of these processes?
Just sum the RSS values of all those processes:
---------- Post updated at 11:53 AM ---------- Previous update was at 11:42 AM ----------
Could you also post the output of the following command:
Could you provide the exact error code and message (ORA- ...)?
ORA-04030: out of process memory when trying to allocate 82456 bytes (pga heap,control file i/o buffer)
Number of sessions
PGA usage
19 rows selected.
Memory usage by java processes and ssh processes
I did try checking the rest of the processes other than oracle db, asm, ssh, java and external connections
So Oracle SGA+PGA comes to around 11G, ASM sga settings is 300M, ssh memory usage is 658M, java memory usage is 5.8G, other process memory is around 1.3G. So in total it comes to around 19G but still I am missing 5G of memory, not sure how this is being utilized?
prstat -a -s rss shows oracle user being using 24G of memory.
Also for a few processes the complete command is getting trimmed for example
and this is the same case when I check java processes too
Is there any way I can get to know the complete OS command being used without getting trimmed?
Last edited by prabumohan; 09-29-2010 at 07:49 AM..
Hi All,
In one of the solaris box aslert got triggered as ...
(Used_Real_Mem_Pct=93.0 Used_Swap_Space_Pct=75.0 )]
when i see the usage by vmstat and sar i am not able to relate the alert with the free memory and swap memory
please help to understand the vmstat output as below..
kthr ... (4 Replies)
One of my Solaris Unix server has total RAM 128G . top & vmstat command shows free memory is 86G and usage is 42G.
ps -eo pid,rss,commshows memory usage by process. when i sum all the memory usage by the process, it shows 1.9TB as shown below.
$ ps -eo pid,pmem,vsz,rss,comm | sort -rnk2 |... (5 Replies)
Hello Gurus,
In Office, I have unix Solaris Server. Oracle and Java is installed on Solaris Server.
Oracle when starts then oracle loads SGA, PGA memory and graps solaris server memory. In the same manner java and other applications grabs memory for them.
I want memory distribution of... (4 Replies)
Hi All,
We have a server with Solaris 10 installed. The total memory of the server is 64GB. In order to check the memory info of the server I use "top" utility that gives me total and free memory in real-time.
I have also installed a Sun container (non-global zone) on top of parent operating... (4 Replies)
Hi,
I'm running a multi-process software system on a Solaris 8 machine. When I monitor the memory usage, I see that the free memory is dropping rapidly, but I can't detect a process that uses this memory.
I'm using "top" to get the free memory and the memory usage of processes.
Thanks. (3 Replies)
how can I find cpu usage memory usage swap usage and
I want to know CPU usage above X% and contiue Y times and memory usage above X % and contiue Y times
my final destination is monitor process
logical volume usage above X % and number of Logical voluage above
can I not to... (3 Replies)
Hello,
I'm looking for a command or script that could permit me to know what is memory usage group by HP-UX kernel, oracle processes and other users (specific software).
A command like 'top' but for all processes and not only for 12 max could be very useful
Thanks in advance (4 Replies)
Hi all,
Without oracle tunning I understand that oracle processes always run on a single CPU at a time (the prstat output always show 1 CPU number) even on multi-processor hardware.
Is it correct?
Regards, (1 Reply)
Hello:
Environment is: Oracle 817 on IBM RS/6000 AIX 433
I have 4GB RAM on the box and Page/Swap is about the same.
Presently I am using close to 1GB of RAM towards 5 instances of ORACLE production environments.
How can I know, how much of memory/RAM is used for :
Oracle Processes , I... (2 Replies)