I am thinking of switching from the non threaded prefork mpm to the hybrid multi-process multi-threaded worker mpm for apache (2.0.52).
It runs on a Intel(R) Xeon(TM) Quad core machine running RHEL4.
I heard the worker mpm scales better and we have been having some scaling issues recently.
/usr/sbin/httpd -l mentions prefork as the compiled in mpm. what is the best possible way to switch to the worker mpm without changing any config ? i want to avoid building from source. is there a place where i can find rpms for apache compiled with worker mpm ?
I use apache for a) blog(wordpress) b) forum(phpbb) c) serving static content for a java web app (uses mod_jk to forward dynamic requests to tomcat )
what could be the possible issues that i need to consider before i make the move ? Also, what are the typical performance improvements after switching to worker mpm ?
Since you're running PHP on that server, I would be cautious about using the Worker MPM. There are some known issues with Worker and PHP. The PHP Installation FAQ recommends against it.
The benefits of using a threaded mpm are chiefly that memory consumption is lower, so you can set MaxClients higher without hosing the box.
This is especially true if you have bloaty modules which allocate a lot of memory per-child (i.e. on child startup) which is shared between threads.
However, it is a major change and not to be taken lightly, in particular worry about your PHP's compatibility. Be sure to test any configuration change thoroughly in your non-production environments before using it in production.
And of course, like any performance-related change, you should performance test it to see if it's actually any better. This is probably nontrivial - at least it's the thing I find most difficult about making such changes.