Performance tuning has always been famous for being one of the best ways to learn lots of things quickly. Yesterday I found out a lot about Apache MPMs (multi-processing modules) – pluggable cores of the server in fact, the most important 2.x version enhancement. There are several of those, and they can seriously affect performance. In particular, there are two most common for Linux:
- Prefork, processing each request with its own process
- Worker, using several multi-threaded request processors
Worker is believed to be faster… if it works, and this is not always true. It didn’t work for me apparently – mod_neko just hangs and does nothing when processing a request. So had to fallback to classic prefork scheme for now.
A great source of documentation about this stuff is, of course, official Apache website – thanks guys for detailed explanations and performance tips!