Why is Apache running so many processes? Excessive RAM here?

Apache is running multiple processes to have them ready when a client request comes in. Spawning a server process is slow, so it's best to have one waiting for a client.

For memory usage, you should take into the account RES size (as displayed by top), which is the amount of physical memory used by the task.

Why do you think you have too many apache2 processes using too much memory? What do you expect? Why do you expect so?


As the answer by Pawel explains, apache uses a process per request model with a process pool (or thread per request with mpm_worker).

You might be able to reduce the memory usage by using a web server based on non-blocking IO, such as nginx. That way the server doesn't need to dedicate a process/thread per connection.