Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change

Re: Number of forks

by Sewi (Friar)
on Sep 15, 2009 at 06:03 UTC ( #795297=note: print w/replies, xml ) Need Help??

in reply to Number of forks

Given an running init process and a parent process which is forked, you're limited to 2**15 - 2 = 32766 forked processes, depending on your system, also 2**16 - 2 = 65533 may be possible :-)

Okay, let's stop kidding.
There is no system- or Perl limit of forked processes, but each fork and each process need CPU time and memory.

Keep your parent as slim as possible before forking id you need many childs. This means: Load only modules used by all childs, don't put big things into variables, etc. Also keep an eye on child/zombie cleanup. Use a wait-loop from time to time to catch childs where you missed the CHLD signal.

I wrote a big forker deamon some time ago. It processes a Job queue where most jobs result in HTTP requests to external targets. The parent ran the queue, did some locking-checks on the queue items and then forked and used the child to load the item and process it. It was limited to a fixed amount of child processes and childs per HTTP target to stay within the servers resource limits but it was able to process more than 20.000 jobs per hour.
(There are other ways to do this, I know, but in this situation safty was more critical than good design and as too many people worked on the different job processors, this was the safest way to keep the daemon running no matter what a child did or not.)

Replies are listed 'Best First'.
Re^2: Number of forks
by Fletch (Chancellor) on Sep 15, 2009 at 12:46 UTC
    There is no system- or Perl limit of forked processes...


    $ ulimit -a | grep process -u: processes 266

    See also RLIMIT_NPROC in the setrlimit(2) man page on your favourite POSIX system.

    The cake is a lie.
    The cake is a lie.
    The cake is a lie.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://795297]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (3)
As of 2018-07-15 23:22 GMT
Find Nodes?
    Voting Booth?
    It has been suggested to rename Perl 6 in order to boost its marketing potential. Which name would you prefer?

    Results (328 votes). Check out past polls.