rjharrison
03-14-2006, 08:56 PM
Hi all.
I've got a most basic, tiny VPS account and it's really fun running on a limited box as it makes you appreciate performance issues that you perhaps otherwise would never experiene or only see at high loads: who cares if httpd is a 4mb or 16mb process if you've got 2gig or ram, right? It's a different story when you've only got 96mb and you're tweaking apache and mysql to give you as much performance as possible!
My query is with running apache as worker or prefork MPM.
I've got a feeling the default install Rimu gave me was with the worker MPM (ie threaded, small number of children, low overhead) but i'm concerned that there might be too many issues with thread unsafe modules and libraries out in the www that could cause me aggro in the future.
What's your opinion, is threaded (worker) apache2 a stable option on linux?
Linux systems can choose to use a threaded MPM like worker or a non-threaded MPM like prefork:
The worker MPM uses multiple child processes. It's multi-threaded within each child, and each thread handles a single connection. Worker is fast and highly scalable and the memory footprint is comparatively low. It's well suited for multiple processors. On the other hand, worker is less tolerant of faulty modules, and a faulty thread can affect all the threads in a child process.
The prefork MPM uses multiple child processes, each child handles one connection at a time. Prefork is well suited for single or double CPU systems, speed is comparable to that of worker, and it's highly tolerant of faulty modules and crashing children - but the memory usage is high, and more traffic leads to greater memory usage.
I've got a most basic, tiny VPS account and it's really fun running on a limited box as it makes you appreciate performance issues that you perhaps otherwise would never experiene or only see at high loads: who cares if httpd is a 4mb or 16mb process if you've got 2gig or ram, right? It's a different story when you've only got 96mb and you're tweaking apache and mysql to give you as much performance as possible!
My query is with running apache as worker or prefork MPM.
I've got a feeling the default install Rimu gave me was with the worker MPM (ie threaded, small number of children, low overhead) but i'm concerned that there might be too many issues with thread unsafe modules and libraries out in the www that could cause me aggro in the future.
What's your opinion, is threaded (worker) apache2 a stable option on linux?
Linux systems can choose to use a threaded MPM like worker or a non-threaded MPM like prefork:
The worker MPM uses multiple child processes. It's multi-threaded within each child, and each thread handles a single connection. Worker is fast and highly scalable and the memory footprint is comparatively low. It's well suited for multiple processors. On the other hand, worker is less tolerant of faulty modules, and a faulty thread can affect all the threads in a child process.
The prefork MPM uses multiple child processes, each child handles one connection at a time. Prefork is well suited for single or double CPU systems, speed is comparable to that of worker, and it's highly tolerant of faulty modules and crashing children - but the memory usage is high, and more traffic leads to greater memory usage.