I was messing around with our mod_perl installation on landfill, and the perl-status page on landfill that shows information about the system. I found something curious: It listed some pages as having been compiled for "ModPerl::Registry" and some pages as having been compiled for "Bugzilla::ModPerl::ResponseHandler". It turns out that since we have a custom handler, mod_perl isn't using our precompiled pages at all. They're just taking up memory and not improving performance. When I fixed the landfill mod_perl install to actually use the precompiled pages, there was a huge performance increase. This should also help a lot with the fact that our processes grow huge slowly over time. (We're compiling every page twice.)
Note this also means that every single Apache process was compiling its own scripts, instead of just compiling them once and sharing them between all the children.
Created attachment 283144 [details] [diff] [review] v1 This fixes it, as tested and now running on landfill.
Comment on attachment 283144 [details] [diff] [review] v1 I know nothing about mod_perl. I will let justdave review it.
Does that mean you will be able to remove the use of Size::Limit module that prevents the use of mod_perl on windows ?
(In reply to comment #4) > Does that mean you will be able to remove the use of Size::Limit module that > prevents the use of mod_perl on windows ? No. You could remove that now, if you want, as long as you feel OK that Apache may consume all of your memory at any particular moment.
Comment on attachment 283144 [details] [diff] [review] v1 Serious speed improvement on a freshly-restarted apache. It also appears to drop memory consumption by about 10M per-process, presumably because we no longer have two copies of everything loaded after it's been running for a bit. Two thumbs up! :)
previous test was on 3.0 branch, just tested on the tip and works great there, too. :)
This was our biggest 3.0.3 blocker. I think we should release 3.0.3 as soon as possible, now. Unfortunately, with LpSolit gone for December, that might be hard. Perhaps somebody else could run QA on 3.0? tip: Checking in mod_perl.pl; /cvsroot/mozilla/webtools/bugzilla/mod_perl.pl,v <-- mod_perl.pl new revision: 1.7; previous revision: 1.6 done 3.0 branch: Checking in mod_perl.pl; /cvsroot/mozilla/webtools/bugzilla/mod_perl.pl,v <-- mod_perl.pl new revision: 184.108.40.206; previous revision: 1.5 done
Relnoted in 3.0.3 when it was released.