Я заметил, что 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-2.2
ubuntu
performance
memory
Трент Скотт
источник
источник
Ответы:
Apache запускает несколько процессов, чтобы они были готовы при поступлении клиентского запроса. Процесс сервера запускается медленно, поэтому лучше иметь один, ожидающий клиента.
Для использования памяти вы должны принять во внимание размер RES (как показано сверху), который является объемом физической памяти, используемой задачей.
Как вы думаете, почему у вас слишком много процессов apache2, использующих слишком много памяти? Что вы ожидаете? Почему ты так ждешь?
источник
Как объясняет ответ Павла, apache использует модель процесса на запрос с пулом процессов (или поток на запрос с помощью mpm_worker).
Вы можете уменьшить использование памяти с помощью веб-сервера на основе неблокирующего ввода-вывода, такого как nginx. Таким образом, серверу не нужно выделять процесс / поток для каждого соединения.
источник
Apache запустит столько процессов, сколько вы его настроите. Конфигурация отличается, если вы используете модули предварительной обработки prefork или рабочий .
источник