On 21/04/2013 9:01 p.m., babajaga wrote:
Amos, a bit off-topic, but anyway: How "transparent" is the "squid -k reconfigure" for the user ?
Depends on the changes that have been made to the config file and speed of loading it. Squid *pauses* the TCP accept and I/O handling while parsing the config file. Then when configuration is all processed successfully it un-pauses and keeps going.
Normally this whole process should be very fast and users only notice a few hundred extra milliseconds of delay.
Is squid simply refusing new connections, and waiting, until busy conns are finished, then doing the reconfig ?
No, squid is simply queueing all I/O events, new TCP connections and packets pile up in the TCP buffers.
When doing single-user test of my simple method, I did not notice any glitch during brwoser session, when the "reconfigure" was done. However, with many users, this might be different.
Yes you should not notice it unless there is a lot of traffic throughput at the time or there are a lot of big changes to be done (ie loading MB of a ACL blacklists every hour could be problematic).
Still the pause is a periodic impact on *all* traffic, however small. Whereas using an external_acl_type helper to check things provides real-time ACL changing and no queuing at all for any of the accept() or I/O operations.
Amos