]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
AUFS: Raise I/O queue congestion limits
authorAmos Jeffries <squid3@treenet.co.nz>
Sat, 1 Aug 2015 01:00:12 +0000 (18:00 -0700)
committerAmos Jeffries <squid3@treenet.co.nz>
Sat, 1 Aug 2015 01:00:12 +0000 (18:00 -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.

NP: this update was triggered by reports from admin with proxies needing
    to expand AIO queues to over 4K entries on startup.

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

index 725c9f461aa6fd78699ccc9385b9c95640c35c27..0b7c7f618309c893df996e9e3e76265b80338e0b 100644 (file)
@@ -523,13 +523,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 9701e7cbb1abe4aa8824c0c6b091ceae6223142b..e9581e34b8320206cddbe03e3522419e745ffac3 100644 (file)
@@ -606,13 +606,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 << ")");
         }
     }