]> granicus.if.org Git - pdns/commitdiff
dnsdist: Change the default max number of queued TCP conns to 1000
authorRemi Gacogne <remi.gacogne@powerdns.com>
Thu, 20 Oct 2016 10:41:11 +0000 (12:41 +0200)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Mon, 24 Oct 2016 09:24:11 +0000 (11:24 +0200)
With the existing default value of 0, we could consume an unlimited
number of file descriptors if the queued connections kept piling up.

pdns/README-dnsdist.md
pdns/dnsdist-tcp.cc

index 5c82ecafb64c9d12a6fa537985db5e31a85f0021..765195180bf2a61dc35f4a18b2958cb9633b75fd 100644 (file)
@@ -915,9 +915,9 @@ The maximum number of threads in the TCP pool is controlled by the
 increased to handle a large number of simultaneous TCP connections.
 If all the TCP threads are busy, new TCP connections are queued while
 they wait to be picked up. The maximum number of queued connections
-can be configured with `setMaxTCPQueuedConnections()`, and any value other
-than 0 (the default) will cause new connections to be dropped if there
-are already too many queued.
+can be configured with `setMaxTCPQueuedConnections()` and defaults to 1000.
+Any value larger than 0 will cause new connections to be dropped if there are
+already too many queued.
 
 When dispatching UDP queries to backend servers, `dnsdist` keeps track of at
 most `n` outstanding queries for each backend. This number `n` can be tuned by
@@ -1476,7 +1476,7 @@ instantiate a server with additional parameters
     * `setTCPRecvTimeout(n)`: set the read timeout on TCP connections from the client, in seconds
     * `setTCPSendTimeout(n)`: set the write timeout on TCP connections from the client, in seconds
     * `setMaxTCPClientThreads(n)`: set the maximum of TCP client threads, handling TCP connections
-    * `setMaxTCPQueuedConnections(n)`: set the maximum number of TCP connections queued (waiting to be picked up by a client thread)
+    * `setMaxTCPQueuedConnections(n)`: set the maximum number of TCP connections queued (waiting to be picked up by a client thread), defaults to 1000. 0 means unlimited
     * `setMaxUDPOutstanding(n)`: set the maximum number of outstanding UDP queries to a given backend server. This can only be set at configuration time and defaults to 10240
     * `setCacheCleaningDelay(n)`: set the interval in seconds between two runs of the cache cleaning algorithm, removing expired entries
     * `setStaleCacheEntriesTTL(n)`: allows using cache entries expired for at most `n` seconds when no backend available to answer for a query
index 21f43570d5e5d086aab7ce8010a7a6ce7064131d..73d915831b904c87ac71e18fae417aee7564cb70 100644 (file)
@@ -67,7 +67,7 @@ struct ConnectionInfo
   ClientState* cs;
 };
 
-uint64_t g_maxTCPQueuedConnections{0};
+uint64_t g_maxTCPQueuedConnections{1000};
 void* tcpClientThread(int pipefd);
 
 // Should not be called simultaneously!