Quote:
This pga_aggregate_target parameter which is set is just a target value isn't it, so even if it is small and
if Oracle needs more memory it would go for it, is that not the case?
Yes, it's true. But it's also true that it will be less efficient
when it doesn't succeed to acquire the needed memory in
one pass.
Quote:
Do you still recommend setting PGA to around 8G, is this just to make sure Oracle reserves that memory
so that no other process can make use of it when Oracle actually needs it?
No, I won't, given the output of vmstat ...
No, it's not about reserved memory, it's about more efficient overall memory management.
Quote:
Regarding Oracle processes, these are all the processes using SGA memory but I see different values
for each process, so should I conclude they all will be using memory within the SGA space
or will they be stretching outside the SGA memory?
They surely go beyond the sga memory - an oracle process attaches to a shared memory segment (the SGA)
and it also needs a private memory (its portion of the PGA). So what you see is normal.
It appears that you have a very busy system.
Your system need more memory that it currently has,
so you could:
1. Try to tune the Oracle processes in order to reduce memory usage.
2. Try to understand and tune the non oracle processes memory usage.
Consider that the Solaris kernel will try to optimize the memory usage distributing the available memory among file system cache and other areas, so it's quite difficult to get an exact image of the used memory.
I believe that your system is not properly sized to support the current load on a single node (i.e. to be able to handle the current load on a single node, you'll need more than 32 GB of physical memory).