Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW

Re: forking w/ mod_perl and DBI

by andreychek (Parson)
on Oct 13, 2001 at 05:18 UTC ( #118615=note: print w/replies, xml ) Need Help??

in reply to forking w/ mod_perl and DBI

There was an excellent article on this very subject in Apache Today titled Improving mod_perl Driven Site's Performance -- Part VI: Forking and Executing Subprocesses from mod_perl.

In the very first paragraph, they point out, using fairly strong language:

It's desirable to avoid forking under mod_perl. Since when you do, you are forking the entire Apache server, lock, stock and barrel. Not only is your Perl code and Perl interpreter being duplicated, but so is mod_ssl, mod_rewrite, mod_log, mod_proxy, mod_speling (it's not a typo!) or whatever modules you have used in your server, all the core routines, etc.

They also point out that forking a process might be trying to do the "wrong thing". In the case that you want to send information to the browser, and then do some processing afterwards (sort of sounds like your case), that there is a cleanup handler. You can do that with something like:
my $r = shift; $r->register_cleanup(\&do_stuff); sub do_cleanup{ #some clean-up code here };
In this case, this Apache process isn't freed up to handle another request, but it also isn't causing you the overhead of another fork.

However, they do say that there are some cases where forking is necessary, and take you through proper steps to do so.

Good luck!

Replies are listed 'Best First'.
Re: Re: forking w/ mod_perl and DBI
by perrin (Chancellor) on Oct 14, 2001 at 08:56 UTC

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://118615]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (3)
As of 2020-10-29 08:45 GMT
Find Nodes?
    Voting Booth?
    My favourite web site is:

    Results (269 votes). Check out past polls.