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

ровно 90 секунд для перезапуска apache httpd

У меня есть виртуальная машина openSUSE 13.1 (на хосте работает Virtualbox 4.2.18, также на openSUSE 13.1), и перезапуск httpd (Apache / 2.4.6) всегда занимает 1,5 минуты:

foobar:~ # time /etc/init.d/apache2 restart
redirecting to systemctl restart apache2.service

real    1m30.778s
user    0m0.004s
sys     0m0.000s

Немедленный последующий перезапуск нормальный (очень быстрый):

foobar:~ # time /etc/init.d/apache2 restart
redirecting to systemctl restart apache2.service

real    0m1.023s
user    0m0.004s
sys     0m0.000s

Через 5 минут время перезапуска снова становится равным 90 секундам:

foobar:/tmp # time /etc/init.d/apache2 restart
redirecting to systemctl restart apache2.service

real    1m30.684s
user    0m0.000s
sys     0m0.000s

Что я искал до сих пор:

Обратите внимание, что это виртуальная машина, которая в настоящее время имеет нулевой трафик, а в памяти и на диске имеется много свободных ГБ.

Я также обнаружил, что именно «стоп» части «перезапуска» занимает 90 секунд.

Есть идеи, почему это происходит или где мне посмотреть дальше?

редактировать: Я узнал, что когда stop занимает 90 секунд, я постоянно получаю следующее в /var/log/apache2/error_log:

[core:notice] [pid 3179] AH00052: child pid 3203 exit signal Segmentation fault (11)

То же самое происходило со мной, и оказалось, что я оставил файл / etc / hosts с настройками по умолчанию.

Задержка исчезла сразу после того, как я обновил файл hosts, подобный этому:

127.0.0.1   localhost
::1         localhost
172.16.333.444  www.mysite.com mysite.com

Ссылки:

/ etc / hosts запись для одного IP-сервера, обслуживающего несколько доменов

https://unix.stackexchange.com/questions/57439/slow-start-of-midnight-commander#answer-397879

После долгих проб и ошибок я обнаружил, что это вызвано php5 модуль, который загружается в /etc/sysconfig/apache2. Его удаление полностью остановило это поведение.

мне нужно php5 модуль, поэтому, чтобы уменьшить эту задержку, я добавил следующее в etc/apache2/server-tuning.conf:

GracefulShutdownTimeout 2

Теперь, когда происходит segfault при остановке apache, он зависает только на 2 секунды.