Я пытаюсь больше понять, как работает Apache. Я использовал top -c для анализа процессов Apache. На двух моих серверах постоянно есть:
httpd -k restart -DSSL
httpd -k restart -DSSL
httpd -k restart -DSSL
httpd -k restart -DSSL
httpd -k restart -DSSL
Насколько я понимаю, это перезапускает Apache. Почему столько процессов перезапускают Apache? Я ожидал:
httpd -DSSL
Может кто-нибудь объяснить это начинающему админу? Все сайты работают нормально, стоит ли мне беспокоиться об этом?
Спасибо Оливер
Если вы используете отличный htop
утилиту и расположите их в виде дерева, вы увидите, что это дочерние процессы Apache. Фактически, глядя на окно, которое я администрирую только что, все мои процессы Apache (родительские и дочерние) имеют этот путь.
Второй способ сигнализации
httpd
процессы заключается в использовании-k
параметры командной строки:stop
,restart
,graceful
иgraceful-stop
, как описано ниже. Это аргументы в пользуhttpd
двоичный, но мы рекомендуем отправлять их, используяapachectl
скрипт управления, который передаст их вhttpd
.
-DSSL
просто говорит Apache начать с поддержки SSL.
Если у вас постоянно порождается много дочерних процессов, это необходимо для того, чтобы учесть все, что вы установили в своем httpd.conf - или один из суб-httpd confs в зависимости от ваших настроек. Например, на моем VPS я использую Предварительные вилки MPM надстройка, поэтому моя основная конфигурация обрабатывается в httpd-mpm.conf
. Итак, моя конфигурация сервера:
<IfModule mpm_prefork_module>
StartServers 1
MinSpareServers 1
MaxSpareServers 5
ServerLimit 4
MaxClients 7
MaxRequestsPerChild 10
</IfModule>
Это на виртуализированной машине с двойным процессором, 1 ГБ ОЗУ, 1 ГБ подкачки и большим количеством дискового пространства. Linux сообщает как Intel Xeon X3360 @ 2,83 ГГц.
Это сравнительно низкие значения, но сервер уже занят обработкой почты, фильтрацией спама, DNS и MySQL (что является ОГРОМНЫМ потребителем ресурсов и не любит размещаться на виртуальных машинах, даже когда настроен). Я бы предпочел увеличить время загрузки страницы, чем случайно подвергнуть себя DDoS-атакам, потому что я жадно ограничиваю свои соединения.
Вам нужно так много прочитать, чтобы полностью понять влияние дочерних процессов, требований к памяти, что на самом деле хорошо или плохо в отношении использования подкачки / использования физической памяти / дискового ввода-вывода / высоких или низких лимитов Apache ... что еще хуже, многие люди будут говорить много противоположных вещей, единственный способ по-настоящему узнать, что работает для вас, - это вызвать постоянную умеренную нагрузку на сервер и посмотреть, как он работает. Совет: если ваш SSH-терминал работает медленно под нагрузкой, этого недостаточно.
Некоторые ссылки для нагрузочного тестирования / тестирования производительности:
tl; dr: если ваш сервер обслуживает страницы достаточно быстро и не влияет на нормальную производительность, ничего не трогайте. :-) Если вы что-нибудь трогаете, всегда сначала делайте резервную копию ваших конфигураций Apache. Настройка MySQL, вероятно, вызовет у вас гораздо больше головной боли в будущем ;-)