Я заметил, что Apache запускает несколько процессов на моем сервере LAMP (ubuntu 10.10). Я просто запускаю сайт Wordpress с MySQL в качестве базы данных. Похоже, что www-data запускает apache2 больше, чем должен (слишком много памяти), я прав:
ID Owner Size Command
31200 www-data 251236 kB /usr/sbin/apache2 -k start
20678 www-data 250948 kB /usr/sbin/apache2 -k start
25781 www-data 248888 kB /usr/sbin/apache2 -k start
31045 www-data 248844 kB /usr/sbin/apache2 -k start
19926 www-data 246480 kB /usr/sbin/apache2 -k start
20749 www-data 239380 kB /usr/sbin/apache2 -k start
32616 www-data 238632 kB /usr/sbin/apache2 -k start
8846 mysql 238128 kB /usr/sbin/mysqld
24178 www-data 234228 kB /usr/sbin/apache2 -k start
32618 www-data 232344 kB /usr/sbin/apache2 -k start
32615 www-data 232204 kB /usr/sbin/apache2 -k start
19805 root 208156 kB /usr/sbin/apache2 -k start
Apache запускает несколько процессов, чтобы они были готовы к поступлению клиентского запроса. Создание серверного процесса происходит медленно, поэтому лучше всего иметь один из них, ожидающий клиента.
Для использования памяти вы должны принять во внимание размер RES (как показано вверху), который является объемом физической памяти, используемой задачей.
Как вы думаете, почему у вас слишком много процессов apache2, использующих слишком много памяти? Что вы ожидаете? Почему вы так ожидаете?
Как объясняет ответ Павла, apache использует модель процесса на запрос с пулом процессов (или поток на запрос с mpm_worker).
Вы можете уменьшить использование памяти, используя веб-сервер на основе неблокирующего ввода-вывода, например nginx. Таким образом, серверу не нужно выделять процесс / поток для каждого соединения.