The impact of Apache graceful restarts and user experience

Solution 1:

When performing a graceful restart, existing connections should run to normal completion at which point their workers will terminate. New workers should already be started to handle new connections.

You shouldn't notice any connection failures or slow page loads but in practice you may see new connections queue briefly while the config is re-loaded by the master thread (mine takes under half a second)

If you are restarting to pick up a new config then there is a risk there may be a config error which could prevent the server restarting properly.

If the server is in an abnormal state it may fail to restart gracefully (perhaps thats why you are considering a graceful restart)

Solution 2:

If Apache is serving static files, and isn't acting as the front to something like passenger, it's pretty smooth. Most users won't even notice, and those that do will consider it normal glitchiness. Apache won't serve new requests until the old ones are served, so you'll be waiting until they all finish up. If someone is downloading a 500MB file at 68KB/s you may be waiting a LONG TIME, during which no other serving is happening.

If Apache is fronting an application server, the situation can be very different. From experience, the UX for interacting with that server will be very bad until the app server is up, loaded, and the caches are warmed.