]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
AUFS: Raise I/O queue congestion limits
authorAmos Jeffries <squid3@treenet.co.nz>
Wed, 15 Jul 2015 14:23:29 +0000 (07:23 -0700)
committerAmos Jeffries <squid3@treenet.co.nz>
Wed, 15 Jul 2015 14:23:29 +0000 (07:23 -0700)
... from 8 to 8196 before initial congestion message appears.

Modern networks can be quite busy and even amateur installations have a
much higher I/O throughput than Squid was originally designed for. This
often results in a series of "Queue congestion" warnings appearing on
startup before Squid learns what the local environment requires.

The new limit helps to cater for this and reduce teh frequency of
unnecessary warnings. They may still occur, so debug output is also
updated to show what the queue length has grown to with each warning.

Also updating the congestion counter from 32-bit to 64-bit unsigned
since the new limit already consumes half the available growth bits in
32-bit integer.

src/DiskIO/DiskThreads/aiops.cc
src/DiskIO/DiskThreads/aiops_win32.cc

index 2a3a564dabfd4b207ff5f0f21e457862fd13ed0b..944fd104c38596c419326dfb95e6cf31596fcd0f 100644 (file)
@@ -506,13 +506,13 @@ squidaio_queue_request(squidaio_request_t * request)
     }
 
     if (request_queue2.head) {
-        static int filter = 0;
-        static int filter_limit = 8;
+        static uint64_t filter = 0;
+        static uint64_t filter_limit = 8192;
 
         if (++filter >= filter_limit) {
             filter_limit += filter;
             filter = 0;
-            debugs(43, DBG_IMPORTANT, "squidaio_queue_request: WARNING - Queue congestion");
+            debugs(43, DBG_IMPORTANT, "squidaio_queue_request: WARNING - Queue congestion (growing to " << filter_limit << ")");
         }
     }
 
index bc741193686fe0124f505f8cd7348e509d64f387..83715894be7af1d5ee21474d3d011cb6529e1436 100644 (file)
@@ -582,13 +582,13 @@ squidaio_queue_request(squidaio_request_t * request)
     }
 
     if (request_queue2.head) {
-        static int filter = 0;
-        static int filter_limit = 8;
+        static uint64_t filter = 0;
+        static uint64_t filter_limit = 8196;
 
         if (++filter >= filter_limit) {
             filter_limit += filter;
             filter = 0;
-            debugs(43, DBG_IMPORTANT, "squidaio_queue_request: WARNING - Queue congestion");
+            debugs(43, DBG_IMPORTANT, "squidaio_queue_request: WARNING - Queue congestion (growing to " << filter_limit << ")");
         }
     }