Out of memory on a UNIX Sun Solaris 8 DB server ????
I received a message from our hosting party that the Internet application, which is hosted there, was running out of memory. I'm not an UNIX guy ( just know some basics ) but I like to know what is happening or what could be the problem.
They're running on 2 Sun Solaris 8 as IAS and DB server ( Oracle 9ir2 running on 5 disks ( 1 os , 4 storage ( separate storage cabinet ))) 600 Mhz CPU and 2 Gb of RAM. Our 3 databases are across the storage disks and the rest is running normal ( only the open_cursor param is set to 20000 and the sessions are raised up to 200 ) in archive mode.
At the moment we have just 1 application running on 1 DB accessed by 5-10 logins at the time (belonging dbf file is just 150 Mb)
What could happen if there is a message "running out of memory" ?
I know memory must be allocated to some Oracle processes (but do not know how or what) and heard about some kernel parameter settings(?).
So I'm not an UNIX guy (yet)and I can not advise the thirt party where to look for. You may think we have to switch form hosting party and you may be right.....(!!).
Please let me know something and if you need more information please ask. (this is a very delicate thing right now ( end their contract (due to incompetence) and switching over to some other hosting party).
you need to chech the /etc/system file.
This file contains directives for the operating system on how much memory to preserve for the Oracle server, how much semaphores for the oracle processes:
shmmax = The maximum size(in bytes) of a single shared memory segment.
shmmin = The minimum size(in bytes) of a single shared memory segment.
shmmni = The number of shared memory identifiers.
shmseg = The maximum number of shared memory segments that can be attached by a process.
semmns = The number of semaphores in the system.
semmni = The number of semaphore set identifiers in the system; determines the number of semaphore sets that can be created at any one time.
semmsl = The maximum number of sempahores that can be in one semaphore set. It should be same size as maximum number of Oracle processes (The PROCESSES parameter in the init.ora file).
SEMMNS = [(largest PROCESSES parameter) *2 + (other instance processes)] + [(# of instances) * 10]
SEMMSL = 10 + largest PROCESSES parameter.
It is better to ask and appear ignorant, than to remain silent and remain ignorant.