Why httpd graceful restart takes such a long time?

15,179

Solution 1

A graceful restart waits for all current connections to close before restarting, whereas a standard restart just aborts current connections.

Solution 2

Note that if you have an invalid hostname in your etc/hosts file -- for example, if you did not modify the default installation settings -- then you may wait up to 90 seconds for various tasks to be performed, including starting/restarting httpd.

vi /etc/hosts

Change

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

To

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

References:

/etc/hosts entry for single IP server serving multiple domains

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

Share:
15,179

Related videos on Youtube

Septiadi Agus
Author by

Septiadi Agus

Updated on September 18, 2022

Comments

  • Septiadi Agus
    Septiadi Agus almost 2 years

    I am checking /usr/local/apache/logs/error_log

    This has happened several times. Sometimes server restart is fast sometimes it's slow. What factor could possibly contribute to this mess.

    [Mon Dec 31 21:40:49 2012] [notice] Graceful restart requested, doing restart
    [Mon Dec 31 21:40:53 2012] [error] [client 66.249.74.237] File does not exist: /home2/wallpape/public_html/tag
    [Mon Dec 31 21:40:53 2012] [error] [client 66.249.74.237] File does not exist: /home2/wallpape/public_html/404.shtml
    [Mon Dec 31 21:50:02 2012] [notice] SSL FIPS mode disabled
    [Mon Dec 31 21:50:03 2012] [notice] Apache/2.2.23 (Unix) mod_ssl/2.2.23 OpenSSL/1.0.0-fips mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 configured -- resuming normal operations
    

    On the other hand ungraceful restart seems to be faster:

    [Mon Dec 31 21:52:58 2012] [notice] SIGHUP received.  Attempting to restart
    [Mon Dec 31 21:52:58 2012] [notice] SSL FIPS mode disabled
    [Mon Dec 31 21:52:58 2012] [notice] Apache/2.2.23 (Unix) mod_ssl/2.2.23 OpenSSL/1.0.0-fips mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 configured -- resuming normal operations
    

    From the manual: http://httpd.apache.org/docs/2.2/stopping.html

    The parent re-reads its configuration files and re-opens its log files. As each child dies off the parent replaces it with a child from the new generation of the configuration, which begins serving new requests immediately.

    It seems that graceful restart is designed so that service can run with no interruption at all. It doesn't work that way though. All domains in my server is death while restarting :(

  • FooBee
    FooBee over 11 years
    @SeptiadiAgus: Yes, but it also doesn't kill ongoing requests. Pick your poison.
  • 4wk_
    4wk_ over 5 years
    Incredible, but true. Restarting apache went from 4 min to 10 seconds. Thanks a lot.
  • adrianTNT
    adrianTNT over 4 years
    Thanks. The one that set that default value there is savage :)
  • Michael Hampton
    Michael Hampton almost 3 years
    Of course you can't change DefaultTimeoutStopSec in an individual service, it's the default. You change TimeoutStopSec instead.
  • CpnCrunch
    CpnCrunch almost 3 years
    Thanks, fixed it.