Apache Multi-Processing Modules (MPM) used for creating child processes in Apache. Apache Worker MPM is able to server large number of requests with fewer system resources than a process based server. A single control process is responsible to launch child processes and each child process creates a fixed number of server threads as defined in the ThreadsPerChild directive.Each thread handles one connection.
1. It Create Multiple Processes and many threads per process, threads handle requests.
2. Consume less resources than Prefork and handle more request with less memory.
3. It uses less memory and provides higher performance.
1. It is not suitable for non-thread safe libraries ( requires a thread-safe processor to handle dynamic content)
2. Entire process will be terminated and affecting all of the threads if single thread is out of control.
3. It does not provide the same level of isolation request to request as a process based MPM does.
If you are using default Apache installation, it will use Prefork MPM by default.
In this article I will help you to disable default Prefork MPM and enable Worker MPM on Apache 2.4.
Enable Worker MPM in Apache
First you will need to edit Apache configuration.
# vim /etc/httpd/conf.modules.d/00-mpm.conf
Comment the LoadModule line for mpm_prefork_module and un-comment LoadModule line for mpm_worker_module in configuration file as per showing below.
#LoadModule mpm_prefork_module modules/mod_mpm_prefork.so LoadModule mpm_worker_module modules/mod_mpm_worker.so
After un-commenting mpm_worker_modules just restart your Apache services.
# service httpd restart OR # /etc/init.d/httpd restart
That’s it. Now check the active MPM.
Check Active MPM in Apache
After successfully enabling Worker MPM in your Apache server. You can verify current running MPM on your Apache server using below command.
# httpd -V | grep MPM Server MPM: worker
I hope This Article will help to enable Worker MPM in Apache 2.4 version. If you have any queries and problem please comment in comment section.