]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#1285] added section about configuring MT
authorWlodek Wencel <wlodek@isc.org>
Mon, 27 Jul 2020 17:43:57 +0000 (19:43 +0200)
committerTomek Mrugalski <tomek@isc.org>
Mon, 27 Jul 2020 18:24:03 +0000 (20:24 +0200)
doc/sphinx/arm/dhcp4-srv.rst
doc/sphinx/arm/dhcp6-srv.rst

index a366793f57ebdb09ae8a6f4ab71146890bc95946..86cae0f39e3db4ac16dea1283a69df212ca3eb66 100644 (file)
@@ -3768,6 +3768,41 @@ An example configuration that sets these parameter looks as follows:
        }
        ...
    }
+Multi-threading settings in different backends
+----------------------------------------------
+
+Both kea-dhcp4 and kea-dhcp6 are tested internally to determine which setting
+is the best. Although this section will describe our results those are just
+recommendations. We strongly advice to run your own performance tests.
+
+Full report Kea 1.7 results can be found `here <https://jenkins.isc.org/job/kea-1.7/job/performance/KeaPerformanceReport/>`_.
+This include hardware description, test scenario descriptions and
+current results.
+
+After enabeling multi-threading number of threads is set by ``thread-pool-size``
+parameter, and results from our tests show that best configurations for
+kea-dhcp4 are:
+
+-  ``thread-pool-size``: 4 when using ``memfile`` for storing leases.
+
+-  ``thread-pool-size``: 12 or more when using ``mysql`` for storing leases.
+
+-  ``thread-pool-size``: 8 when using ``postgresql``.
+
+Another very important parameter is ``packet-queue-size`` and in our tests we
+used it as multiplier of ``thread-pool-size``. So actual setting strongly depends
+on ``thread-pool-size``.
+
+Our tests reported best results when:
+
+-  ``packet-queue-size``: 7 * ``thread-pool-size`` when using ``memfile`` for
+  storing leases. In our case it's 7 * 4 = 28.
+
+-  ``packet-queue-size``: 66 * ``thread-pool-size`` when using ``mysql`` for
+  storing leases. In our case it's 66 * 12 = 792.
+
+-  ``packet-queue-size``: 11 * ``thread-pool-size`` when using ``postgresql`` for
+  storing leases. In our case it's 11 * 8 = 88.
 
 .. _host-reservation-v4:
 
index d70178b376b720340488cee45e9732eb287169fd..c809e5dc5dfb51c72c43c7c0f6c5cf93d45de268 100644 (file)
@@ -3281,6 +3281,42 @@ An example configuration that sets these parameter looks as follows:
        ...
    }
 
+Multi-threading settings in different backends
+----------------------------------------------
+
+Both kea-dhcp4 and kea-dhcp6 are tested internally to determine which setting
+is the best. Although this section will describe our results those are just
+recommendations. We strongly advice to run your own performance tests.
+
+Full report Kea 1.7 results can be found `here <https://jenkins.isc.org/job/kea-1.7/job/performance/KeaPerformanceReport/>`_.
+This include hardware description, test scenario descriptions and
+current results.
+
+After enabeling multi-threading number of threads is set by ``thread-pool-size``
+parameter, and results from our tests show that best configurations for
+kea-dhcp6 are:
+
+-  ``thread-pool-size``: 4 when using ``memfile`` for storing leases.
+
+-  ``thread-pool-size``: 12 or more when using ``mysql`` for storing leases.
+
+-  ``thread-pool-size``: 6 when using ``postgresql``.
+
+Another very important parameter is ``packet-queue-size`` and in our tests we
+used it as multiplier of ``thread-pool-size``. So actual setting strongly depends
+on ``thread-pool-size``.
+
+Our tests reported best results when:
+
+-  ``packet-queue-size``: 150 * ``thread-pool-size`` when using ``memfile`` for
+  storing leases. In our case it's 150 * 4 = 600.
+
+-  ``packet-queue-size``: 200 * ``thread-pool-size`` when using ``mysql`` for
+  storing leases. In our case it's 200 * 12 = 2400.
+
+-  ``packet-queue-size``: 11 * ``thread-pool-size`` when using ``postgresql`` for
+  storing leases. In our case it's 11 * 6 = 66.
+
 .. _host-reservation-v6:
 
 Host Reservation in DHCPv6