Summary: | graceful restart takes very long time sometimes | ||
---|---|---|---|
Product: | Apache httpd-2 | Reporter: | Arkadiusz Miskiewicz <arekm> |
Component: | mpm_prefork | Assignee: | Apache HTTPD Bugs Mailing List <bugs> |
Status: | RESOLVED FIXED | ||
Severity: | major | CC: | naox |
Priority: | P2 | ||
Version: | 2.4.4 | ||
Target Milestone: | --- | ||
Hardware: | PC | ||
OS: | Linux | ||
Attachments: | Only check idle |
Description
Arkadiusz Miskiewicz
2013-04-16 08:52:07 UTC
I can confirm this bug. I’m running apache 2.2.x (24 now) with about 250 connections open all the time. Reloading apache configuration (apachectl graceful) is very slow and takes 1-4 minutes. During that time new connections are established but webpages are not served. Monitoring programs with a timeout will detect this as apache crash and try to restart it which makes situation even more complicated. I’ve seen this issue for years now. I’ve applied Arkadiusz Miskiewicz patch for 2.2.24 (http://comments.gmane.org/gmane.comp.apache.devel/50249) and it makes quite a difference. Graceful restarts are now executed in 4-12 seconds. I personaly think it is still to long. Webpages on webserver should not be inaccessible due to graceful restart even for 2 seconds. There great is need for better way of reloading configuration and “graceful” was always quick and very dirty walkaround. Certainly, dummy_connection() setting a 3 *second* timeout is bogus... Will look... At least for worker, "ap_mpm_pod_killpg(pod, ap_daemons_limit, TRUE);" should probably use the usually-smaller ap_max_daemons_limit. (That's from looking at 2.2 worker.c recently; I didn't check other MPMs/branches.) This could help some. It is important for users to check the time between these two messages so that it is clear it is the same problem. SIGUSR1 received. Doing graceful restart Apache (Unix) configured -- resuming normal operations Created attachment 31046 [details]
Only check idle
Patch in trunk To avoid any confusion this is first fixed in 2.4.10. |