start/stop taking too much time

Solution 1:

There is a parameter called shutdown_lifetime. It has a default value of 30 seconds.

So when Squid receives a shutdown request, it waits at least 30 seconds before it terminates.

$ grep -B 8 "# shutdown_lifetime" /etc/squid3/squid.conf 

#  TAG: shutdown_lifetime   time-units
#   When SIGTERM or SIGHUP is received, the cache is put into
#   "shutdown pending" mode until all active sockets are closed.
#   This value is the lifetime to set for all open descriptors
#   during shutdown mode.  Any active clients after this many
#   seconds will receive a 'timeout' message.
# Default:
# shutdown_lifetime 30 seconds

Just "uncomment" the last line and set a shorter time:

shutdown_lifetime 10 seconds 

For more info see below.

http://www.squid-cache.org/Doc/config/shutdown_lifetime/