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

couldn't fork child process: not enough memory

Brian Bientz
Advisor

couldn't fork child process: not enough memory

We use Oracle Enterprise Manager to monitor our database servers. Periodically on our development server the OEM Intelligent Agent is reporting the following in its trace file:

diskstats: open failed: couldn't fork child process: not enough memory

The server has either 6 or 8 GB of which only about half is allocated to Oracle instances. What does this mean? Is there a kernal parameter that needs to be changed?
5 REPLIES
RAC_1
Honored Contributor

Re: couldn't fork child process: not enough memory

When this error is reported, check following.

swapinfo -mat
glance -m
vmstat (check free column)

Anil
There is no substitute to HARDWORK
Ted Buis
Honored Contributor

Re: couldn't fork child process: not enough memory

Could you provide the list of kernel parameter values too?
Mom 6
A. Clay Stephenson
Acclaimed Contributor

Re: couldn't fork child process: not enough memory

Always, always when you see errors, consult the section 2 man pages.

Do a man 2 fork and you will see when it sets errno = ENOMEM. You are almost certainly running out of virtual memory -- you need more swap space or better you need to reduce the load --- smaller SGA's. Do a vmstat and look at the pageout rate; if it's significant then you need to add more memory or reduce the SGA's. Until you can get more memory (even if you add more swap) you really need to reduce the SGA's because the overhead of having to go to the disks more often for database i/o is trivial (by a factor of 100) to the overhead of having to page.
If it ain't broke, I can fix that.
Kent Ostby
Honored Contributor

Re: couldn't fork child process: not enough memory

This is generally a lack of swap.

Check swapinfo and make sure that your box is configured with at least 2xRAM worth of disk swap (the general recommendation from HP).

Best regards,

Oz
"Well, actually, she is a rocket scientist" -- Steve Martin in "Roxanne"
Ted Buis
Honored Contributor

Re: couldn't fork child process: not enough memory

Specifically, I wanted to check to see what you had set for the max value for dynamic buffer cache in your kernel.
Mom 6