Is this many Apache instances normal?

Yes. Apache works like a traditional unix daemon, whereby:

  • Main program waits for an incoming request (blocks on a socket)
  • After receiving the request, the fork() system call is used, which causes the main process to clone itself
  • The main process then waits again for another request
  • The forked copy proceeds to handle the request, and terminates

Forking does consume time, so Apache preforks several instances in anticipation of handling multiple requests. This is totally configurable via /etc/apache2.conf. I can't think of the exact directives right now, but it's probably explained in the comments.

If you expect to handle sudden bursts of concurrrent HTTP requests, then it benefits you to have a lot of instances standing by to take them. The tradeoff is this consumes more memory.


If you're looking to lower this number use the MinSpareServers and MaxSpareServers directives:

http://httpd.apache.org/docs/2.2/mod/prefork.html