General
cancel
Showing results for 
Search instead for 
Did you mean: 

Oracle Users can't login - Fork Error- Too many processes

SOLVED
Go to solution
Laurie A. Krumrey
Regular Advisor

Oracle Users can't login - Fork Error- Too many processes

My Oracle users on my 11.0 box can't login
in. It says too many processes.

We have increased our work/ # of people on this
box for Oracle 8i.

I get no errors in syslog. But in Oracle we
get "can't start a dedicated process in Oracle".

We doubled the kernel parameters:

SEMMNI to 200
SEMMNS to 400

We are running Oracle 8i. Can you think
of any other parameters to increase?

Everything was running fine till we increased
the oracle work load. We have 4 CPU's of 440MHz and ONLY 2 GB of Memory...Could this
be the problem?

Thank you,
Laurie
Happiness is a choice
5 REPLIES
Sridhar Bhaskarla
Honored Contributor
Solution

Re: Oracle Users can't login - Fork Error- Too many processes

Hi Laurie,

There are two kernel parameters that need to be adjusted.

maxuprc and nproc.

Check nproc by executing

sar -v 2 20

if you see proc-sz almost full, then you need to increase it.

I would say increase it to the current value + 30% of the current value.

maxuprc will be fine most of the times.

You can use SAM to accomplish this task.

-Sri
You may be disappointed if you fail, but you are doomed if you don't try
James R. Ferguson
Acclaimed Contributor

Re: Oracle Users can't login - Fork Error- Too many processes

Hi Laurie:

"Too many processes" points to the kernel parameter 'nproc' or 'maxuprc'.

If you are getting this failure only for a particular user, then you may want to increase the 'maxuprc' kernel parameter. If this is happening for all users (system-wide), then you may want to increase 'nproc'. In either case, make sure that the overflow isn't due to a rogue application.

Since 'nproc' is calculated based on 'maxusers', you may want to increase 'maxusers' and let it inflate 'nproc'.

You can use 'sar -v' and 'glance' ([t]able view) to monitor 'nproc' utilization.

With 'sar' if you do this:

# sar -v 5 10

...then you will get 10-samples at 5-second intervals of critical table levels. The one headed "proc-sz" shows the current and maximum 'nproc' values along with the number of times an overflow has occured.

See this document for an guide to kernel parameters:

http://docs.hp.com/hpux/onlinedocs/os/KCparams.OverviewAll.html

Regards!

...JRF...
linuxfan
Honored Contributor

Re: Oracle Users can't login - Fork Error- Too many processes

Hi Laurie,

How many oracle processes are running?

You may getting limited by the kernel parameter maxuprc (which by default is 75, which means any user cannot spawn more than 75 processes) If this is the only user who is having this problem then you may get by increasing just this parameter, you may also want to look at the parameter nproc (which determines the maximum(total) number of processes that can be run simultaneously)

A quick way to check the number of oracle processes is "ps -ef |grep oracle |wc -l"

You could also look at sar -v and look for the entry proc-siz (which indicates the total number of processes (nproc) running on the system)


-HTH
Ramesh
They think they know but don't. At least I know I don't know - Socrates
Magdi KAMAL
Respected Contributor

Re: Oracle Users can't login - Fork Error- Too many processes

Hi Laurie,

Before increasing value of nproc, try looking for zombies process :

#ps -ef ? grep defunct ?grep -v grep

if there is an ouput, then you may look way you have them first. Otherwise,

#sar -v interval numberOfTimes

and look for proc-sz to see how full it is in comparing with the value just next to the slash "/".

Magdi
Bill Thorsteinson
Honored Contributor

Re: Oracle Users can't login - Fork Error- Too many processes

I have generated this kind of error by accidentally
executing a script that recursivly calls itself. Moving
or removing the script solves the problem.

There are a couple of Oracle issues that can
lead to this problem.

Processes connected to dropped connections persist
until the keepalive process realizes they are dead.
This can be set to a very long time. Processes for
connections that are properly closed clear out quickly.

Check the count of processes owned by Oracle. Each
instance uses a little less than ten processes. The
number of processes should be less than ten times
the number of instances plus the number of concurrent
users. If it is more you likely have servers for dropped
connections.

Adding Oracle users can also cause this problem.
If you have a lot of users consider using the
multi-threaded server. This allows several users
to use the same server process. This will
reduce the process load substantially. If you have
processes that do long running queries, you should
consider running them on a single threaded server.