Bump the recursive-clients default to 1000000
Increase the default value of recursive-clients to one million. The server can handle this just fine, and we need to avoid the situation where too many clients are stuck on the unresponsive fetches.
This commit is contained in:
+1
-1
@@ -99,7 +99,7 @@ options {\n\
|
||||
"\
|
||||
prefetch 2 9;\n\
|
||||
recursing-file \"named.recursing\";\n\
|
||||
recursive-clients 1000;\n\
|
||||
recursive-clients 100000;\n\
|
||||
request-nsid false;\n\
|
||||
reserved-sockets 512;\n\
|
||||
resolver-query-timeout 10;\n\
|
||||
|
||||
+3
-13
@@ -8586,19 +8586,9 @@ load_configuration(const char *filename, named_server_t *server,
|
||||
configure_server_quota(maps, "update-quota", &server->sctx->updquota);
|
||||
|
||||
max = isc_quota_getmax(&server->sctx->recursionquota);
|
||||
if (max > 1000) {
|
||||
unsigned int margin = ISC_MAX(100, named_g_cpus + 1);
|
||||
if (margin + 100 > max) {
|
||||
isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
|
||||
NAMED_LOGMODULE_SERVER, ISC_LOG_ERROR,
|
||||
"'recursive-clients %d' too low when "
|
||||
"running with %d worker threads",
|
||||
max, named_g_cpus);
|
||||
result = ISC_R_RANGE;
|
||||
|
||||
goto cleanup_bindkeys_parser;
|
||||
}
|
||||
softquota = max - margin;
|
||||
if (max < 1000) {
|
||||
isc_quota_max(&server->sctx->recursionquota, 1000);
|
||||
softquota = 900;
|
||||
} else {
|
||||
softquota = (max * 90) / 100;
|
||||
}
|
||||
|
||||
@@ -3641,9 +3641,12 @@ system.
|
||||
:tags: query
|
||||
:short: Specifies the maximum number of concurrent recursive queries the server can perform.
|
||||
|
||||
This sets the maximum number (a "hard quota") of simultaneous recursive lookups
|
||||
the server performs on behalf of clients. The default is
|
||||
``1000``. Because each recursing client uses a fair bit of memory (on
|
||||
This sets the maximum number (a "hard quota") of simultaneous recursive
|
||||
lookups the server performs on behalf of clients. The default is ``1000000``
|
||||
(one million). The minimum is ``1000``. Values below the minimum are
|
||||
adjusted to the minimum value.
|
||||
|
||||
Because each recursing client uses a fair bit of memory (on
|
||||
the order of 20 kilobytes), the value of the :any:`recursive-clients`
|
||||
option may have to be decreased on hosts with limited memory.
|
||||
|
||||
@@ -3654,9 +3657,7 @@ system.
|
||||
|
||||
A "soft quota" is also set. When this lower quota is exceeded,
|
||||
incoming requests are accepted, but for each one, a pending request
|
||||
is dropped. If :any:`recursive-clients` is greater than 1000, the
|
||||
soft quota is set to :any:`recursive-clients` minus 100; otherwise it is
|
||||
set to 90% of :any:`recursive-clients`.
|
||||
is dropped. The soft quota is set to 90% of :any:`recursive-clients`.
|
||||
|
||||
.. namedconf:statement:: tcp-clients
|
||||
:tags: server
|
||||
|
||||
Reference in New Issue
Block a user