You are viewing a plain text version of this content. The canonical link for it is here.
Posted to bugs@httpd.apache.org by bu...@apache.org on 2005/04/19 00:12:42 UTC

DO NOT REPLY [Bug 34508] New: - Randomly slow graceful restart, not accepting new connections.

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG�
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=34508>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND�
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=34508

           Summary: Randomly slow graceful restart, not accepting new
                    connections.
           Product: Apache httpd-2.0
           Version: 2.0-HEAD
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P3
         Component: prefork
        AssignedTo: bugs@httpd.apache.org
        ReportedBy: apache.bugzilla@abcdatos.com


This is observed in 2.0.53 and 2.0.54 versions, prefork operated. The server use
is medium (typically 100 to 200 simultaneous connections), no PHP, no mod_perl,
only cgi.

Every hour, I move (mv) the log to a new filename, send a graceful restart to
ensure using a new one, and wait 60 seconds (other values tested without
changes) to copy it to another host to process it (scp). Some minutes later, the
old log is deleted.

I see the server stops to accept new connections just after the graceful restart
is requested, bandwidth measurements shows a clear down graphic, and time
required to accept new ones vary from a few seconds (97% cases) to a few
minutes, keeping the site unnecessarilly down. I expect graceful restart don't
causes to stop accepting new connections, as I understand this is the normal
SIGUSR1 action required.

 A test adding a sleep of five seconds after moving log and before requesting
the graceful restart causes no effect.

These are the compiling options used:

CC="gcc" CFLAGS="-O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe
-mpreferred-stack-boundary=2 -march=i686" ./configure
--prefix=/usr/local/apache/apache_1 --enable-modules="deflate headers info cgi
speling rewrite" --disable-so --disable-suexec --disable-cgid --disable-expires
--disable-logio --disable-imap --disable-negotiation --disable-autoindex
--disable-include --disable-userdir

There are two more Apache2 servers on the same host (using different IP/port
combinations, of course, and different PID files), one used for SSL connections
and another one to serve PHP and mod_perl scripts, these others have no log
processing, and no graceful restarts are requested for them.

May be interesting to show this configuration parts:

<IfModule prefork.c>
StartServers        64
MinSpareServers     32
MaxSpareServers     64
MaxClients         250
MaxRequestsPerChild  0
</IfModule>
Timeout 60
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 10

There is almost no swap, I don't see LoadAverage or CPU% too high (<1.00, <30%),
but is difficult to catch it just at the exact 'failing time'. There is no local
databases, SMTP servers or other functionalities wich suspected to cause load
for this host (P4 2,8 Ghz, 1GB RAM), is maintained only to host three Apache2
servers.

Also note that if I use a restart instead of a graceful restart, the results are
just the same: too much time to kill the server -not allways, only about 3%-,
from 30 seconds to 8 minutes, and then the new connections accepted when all
finished and restarted.

Too much time to shutdown childs and not accepting new connections when issuing
a graceful restart is the problem I see.

Thank to all the readers.

-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

---------------------------------------------------------------------
To unsubscribe, e-mail: bugs-unsubscribe@httpd.apache.org
For additional commands, e-mail: bugs-help@httpd.apache.org