The maximum value of Oracle processes depends also on the available memory.
Every process consumes RAM (Oracle warns about 5 MB, some experts say it is 2 MB).
So these processes will eat the RAm and also use ports (Listener redirects the ports to
establish socket connection).
The best practice is to try to remove the dead connections adding to SQLNET.ORA file the parameter:
SQLNET.EXPIRE_TIME= 30
every 30 minutes the dead connections will be removed.
Main Topics
Browse All Topics





by: tomcatkevPosted on 2009-08-04 at 02:28:11ID: 25011778
Generally you've identified the correct relationships and SHM tunables that need to be increased to allow Processes to be increased.
I'm using Solaris rather than HPUX, but I might tend to suggest putty really high estimates in for the Semaphore Kernel parms, particularly if you want to try and set something near Oracle maximum, then set the corresponding SHM kernel parameters closer to the maximum. There is a VERY SMALL AMOUNT of kernel memory to be saved by specifying anything less than the maximums, and hey, I'll presume that if you want to have 32767 processes, you probably have a decent 32G+ memory configuration and probably aren't concerned if the kernel grows by a few MB to give you maximum flexibility for scalability. It is what we do :-)
semmns = 32767 (maximum specifiable hpux value, maximum total of all Oracle Processes for all instances on the box)
semmni = 64 (maximum number of Oracle instances on the box)
And with apology, I don't recognize semmnu as important to mess with.
A few others worthy to note that you don't mention...
semmsl = 32767 (maximum number of processes per instance / per semaphore identifier)
shmmax = 0xffffffffffff (or some value that is bigger than the maximum memory your server can be expanded to)