From: Wlodek Wencel Date: Mon, 27 Jul 2020 17:43:57 +0000 (+0200) Subject: [#1285] added section about configuring MT X-Git-Tag: Kea-1.7.10~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9f6d56951b38bfed1246905b7645c121c67e1423;p=thirdparty%2Fkea.git [#1285] added section about configuring MT --- diff --git a/doc/sphinx/arm/dhcp4-srv.rst b/doc/sphinx/arm/dhcp4-srv.rst index a366793f57..86cae0f39e 100644 --- a/doc/sphinx/arm/dhcp4-srv.rst +++ b/doc/sphinx/arm/dhcp4-srv.rst @@ -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 `_. +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: diff --git a/doc/sphinx/arm/dhcp6-srv.rst b/doc/sphinx/arm/dhcp6-srv.rst index d70178b376..c809e5dc5d 100644 --- a/doc/sphinx/arm/dhcp6-srv.rst +++ b/doc/sphinx/arm/dhcp6-srv.rst @@ -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 `_. +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