diff --git a/docs/modules/operation/pages/deep-dive/provisioning/scalability.adoc b/docs/modules/operation/pages/deep-dive/provisioning/scalability.adoc
index ad1fa9cf99d0..09c88ed0e932 100644
--- a/docs/modules/operation/pages/deep-dive/provisioning/scalability.adoc
+++ b/docs/modules/operation/pages/deep-dive/provisioning/scalability.adoc
@@ -88,3 +88,29 @@ For a large number of devices, you may want to set the `scan-interval` to `0` to
NOTE: Even if `scan-interval` is set to `0`, new nodes added to a requisition are scanned during import.
You can also disable this scan by setting `scan-interval` to `-1`.
+=== Tuning DNS reverse lookups
+
+During the provisioning process hostnames are determined for each interface IP address by a DNS reverse lookups.
+A thread pool is used to allow concurrent DNS lookups.
+This thread pool can be configured by the following properties:
+
+.Thread pool configuration parameters for DNS lookups
+[options="header"]
+[cols="1,3,2"]
+|===
+| Parameter
+| Description
+| Default value
+
+| org.opennms.netmgt.provision.dns.client.rpc.maxThreadPoolSize
+| Maximum thread pool size.
+|
+64
+| org.opennms.netmgt.provision.dns.client.rpc.queueCapacity
+| Maximum queue size for pending DNS lookups.
+|
+4096
+|===
+
+NOTE: DNS reverse lookups can be disabled completely by setting the property `org.opennms.provisiond.reverseResolveRequisitionIpInterfaceHostnames` to `false`.
+
diff --git a/opennms-base-assembly/src/main/filtered/etc/opennms.properties b/opennms-base-assembly/src/main/filtered/etc/opennms.properties
index ab8f542e48cd..16099cb5ae8c 100644
--- a/opennms-base-assembly/src/main/filtered/etc/opennms.properties
+++ b/opennms-base-assembly/src/main/filtered/etc/opennms.properties
@@ -861,6 +861,14 @@ org.opennms.newts.nan_on_counter_wrap=true
# By default this property is not used and empty.
# org.opennms.netmgt.search.info=
-# # ###### Mate Expressions ######
+# ###### Mate Expressions ######
# Limit of recursion depth while evaluating mate expressions
# org.opennms.mate.maxRecursionDepth=8
+
+# ###### DNS tuning options ######
+# A thread pool is used to allow concurrent DNS lookups on OpenNMS instance.
+# org.opennms.netmgt.provision.dns.client.rpc.maxThreadPoolSize=64
+# org.opennms.netmgt.provision.dns.client.rpc.queueCapacity=4096
+
+# By default hostnames are determined for a node's IP addresses during the provisioning's audit phase.
+# org.opennms.provisiond.reverseResolveRequisitionIpInterfaceHostnames=true
diff --git a/opennms-provision/opennms-detectorclient-rpc/src/main/resources/META-INF/opennms/applicationContext-rpc-dns.xml b/opennms-provision/opennms-detectorclient-rpc/src/main/resources/META-INF/opennms/applicationContext-rpc-dns.xml
index 82fc728105ae..203d21a38e3b 100644
--- a/opennms-provision/opennms-detectorclient-rpc/src/main/resources/META-INF/opennms/applicationContext-rpc-dns.xml
+++ b/opennms-provision/opennms-detectorclient-rpc/src/main/resources/META-INF/opennms/applicationContext-rpc-dns.xml
@@ -12,8 +12,8 @@
-
-
+
+
diff --git a/opennms-provision/opennms-detectorclient-rpc/src/main/resources/OSGI-INF/blueprint/blueprint.xml b/opennms-provision/opennms-detectorclient-rpc/src/main/resources/OSGI-INF/blueprint/blueprint.xml
index 13fe2eefa989..0fe53c54fc6c 100644
--- a/opennms-provision/opennms-detectorclient-rpc/src/main/resources/OSGI-INF/blueprint/blueprint.xml
+++ b/opennms-provision/opennms-detectorclient-rpc/src/main/resources/OSGI-INF/blueprint/blueprint.xml
@@ -13,7 +13,7 @@
-
+