Назад | Перейти на главную страницу

Почему Apache запускает так много процессов? Здесь избыток оперативной памяти?

Я заметил, что 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. Таким образом, серверу не нужно выделять процесс / поток для каждого соединения.

Apache будет запускать столько процессов, сколько вы его настроили. Конфигурация отличается, если вы используете Prefork или рабочий многопроцессорные модули.