From fe835f9d529cefb71c5720a41a69f21097696d51 Mon Sep 17 00:00:00 2001 From: "W.C.A. Wijngaards" Date: Wed, 16 Apr 2025 12:03:08 +0200 Subject: [PATCH] - Increase default to `num-queries-per-thread: 2048`, when unbound is compiled with libevent. It makes saturation of the task queue more resource intensive and less practical. Thanks to Shiming Liu, Network and Information Security Lab, Tsinghua University for the report. --- doc/Changelog | 7 +++++++ doc/example.conf.in | 2 +- doc/unbound.conf.5.in | 4 ++-- util/config_file.c | 2 +- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/doc/Changelog b/doc/Changelog index f695d7f4e..488b107c0 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,10 @@ +16 April 2025: Wouter + - Increase default to `num-queries-per-thread: 2048`, when unbound is + compiled with libevent. It makes saturation of the task queue more + resource intensive and less practical. Thanks to Shiming Liu, + Network and Information Security Lab, Tsinghua University for the + report. + 11 April 2025: Yorgos - Merge #1265: Fix WSAPoll. diff --git a/doc/example.conf.in b/doc/example.conf.in index fdef9ef37..db54f9739 100644 --- a/doc/example.conf.in +++ b/doc/example.conf.in @@ -163,7 +163,7 @@ server: # msg-cache-slabs: 4 # the number of queries that a thread gets to service. - # num-queries-per-thread: 1024 + # num-queries-per-thread: 2048 # if very busy, 50% queries run to completion, 50% get timeout in msec # jostle-timeout: 200 diff --git a/doc/unbound.conf.5.in b/doc/unbound.conf.5.in index 21dbd73e6..4c7ea9f75 100644 --- a/doc/unbound.conf.5.in +++ b/doc/unbound.conf.5.in @@ -268,7 +268,7 @@ The number of queries that every thread will service simultaneously. If more queries arrive that need servicing, and no queries can be jostled out (see \fIjostle\-timeout\fR), then the queries are dropped. This forces the client to resend after a timeout; allowing the server time to work on -the existing queries. Default depends on compile options, 512 or 1024. +the existing queries. Default depends on compile options, 512 or 2048. .TP .B jostle\-timeout: \fI Timeout used when the server is very busy. Set to a value that usually @@ -280,7 +280,7 @@ service by slow queries or high query rates. Default 200 milliseconds. The effect is that the qps for long-lasting queries is about (numqueriesperthread / 2) / (average time for such long queries) qps. The qps for short queries can be about (numqueriesperthread / 2) -/ (jostletimeout in whole seconds) qps per thread, about (1024/2)*5 = 2560 +/ (jostletimeout in whole seconds) qps per thread, about (2048/2)*5 = 5120 qps by default. .TP .B delay\-close: \fI diff --git a/util/config_file.c b/util/config_file.c index 81bffa8d8..7566d690c 100644 --- a/util/config_file.c +++ b/util/config_file.c @@ -155,7 +155,7 @@ config_create(void) # else /* libevent can use many sockets */ cfg->outgoing_num_ports = 4096; - cfg->num_queries_per_thread = 1024; + cfg->num_queries_per_thread = 2048; # endif cfg->outgoing_num_tcp = 10; cfg->incoming_num_tcp = 10; -- 2.47.3