Why do I have so many apache2 processes?

Solution 1:

I'm not sure, but your ps output reminded me much of Linux 2.4 - threads used to appear as processes on ps until the move from Linux Threads to the Native Posix Threads Library.

This quote from this thread seems to confirm my suspicion:

Under GNU/kFreeBSD threads are process clones, similarly as under linux 2.4 series

If this is the case these wouldn't mean worker is malfunctioning. It isn't forking - those are threads you're seeing. Apache docs on ThreadsPerChild:

This directive sets the number of threads created by each child process. The child creates these threads at startup and never creates more. (...) The default value for ThreadsPerChild is 64 when used with mpm_winnt and 25 when used with the others.

http://httpd.apache.org/docs/2.0/mod/mpm_common.html#threadsperchild