Вопрос: Почему 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

17
2018-05-14 05:29


Источник


Это был тот же случай и в моей предыдущей работе (CentOS). Я просто предположил, что все дочерние процессы запускаются apache для каждого запроса. Мы никогда не сталкивались с проблемами производительности / памяти из-за этого, хотя ... - Software Mechanic
Хм. Я просто беспокоюсь о нехватке памяти в этой системе, поскольку это VPS. - Trent Scott


Ответы:


Apache запускает несколько процессов, чтобы они были готовы, когда клиентский запрос поступает. Искоренение серверного процесса происходит медленно, поэтому лучше всего ждать клиента.

Для использования памяти вы должны принять в свой размер RES RES (как показано сверху), то есть количество физической памяти, используемой задачей.

Почему, по-вашему, у вас слишком много процессов apache2, использующих слишком много памяти? Что вы ожидаете? Почему вы так ожидаете?


19
2018-05-14 05:34



Это изображение на основе Cloud. Просто кажется, что он использует больше памяти, чем нужно для такого небольшого сайта. Реальная память: 496,36 МБ всего / 92,02 МБ свободного пространства подкачки: 1024 МБ всего / 975,93 МБ бесплатно - Trent Scott
@Trenton: С ответом pawel это звучит прекрасно. Если вы на самом деле не столкнулись с сбоем в mysql или чем-то из-за нехватки памяти, вы должны быть в порядке. Если это произойдет, тогда вы должны искать конфигурации apache для ограничения этих порожденных процессов. - Software Mechanic
Круто спасибо! :) - Trent Scott
Linux попытается сохранить большую часть используемой памяти. Если в него нечего добавить, он будет использовать ОЗУ для кеш-памяти и дисковых буферов. Пустая память - это потерянная память (если у вас не хватает ОЗУ). - Paweł Brodacki


Как объясняет Павель, apache использует процесс для каждой модели запроса с пулом процессов (или поток на запрос с mpm_worker).

Возможно, вы сможете сократить использование памяти с помощью веб-сервера на основе неблокирующего ввода-вывода, таких как nginx. Таким образом, серверу не нужно выделять процесс / поток для каждого соединения.


3
2018-05-14 07:46





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


2
2018-05-16 02:32