Performance tests results of Kea

  • Generated on - 26/05/2021 08:12:59
  • Generated by - kea-dev/performance
  • Description - Automatically generated on Jenkins
  • Build id - 115
  • Latest Kea version - 1.8.2-isc0001520201206093433

Basic performance results and benchmark runs

Results presented here showing top performance of Kea and:

Kea configuration

Kea is using the simplest configuration possible.

Traffic characteristics

perfdhcp generates simples DORA/SARR exchanges without any additional options or option requests. Normally we use 500mln of clients (to not repeat any of them) unless it's stated differently in test description.

Testing methodology

Each test is being executed 9 times, highest and lowest results are ignored, final result of the test is calculated as average out of 7 remaining results.
History of those results is in History of basic results

Basic performance of memfile backend in non-persistent mode

Kea can run in special mode, when it's using memfile but writing to the file is disabled. Everything is kept in memory (similar to keeping memfile on ramdisk).
Kea configuration, traffic specification and testing methodology is the same as for basic results. Reason why it's in separated set it's because it can't be compared with other backends and we strongly discourage people to use this mode. Kea will loose every saved lease on restart.
Running Kea with memfile with non-persist option set to False is NOT RECOMMENDED!

This section provides insight into how kea works second by second during longer running tests.
Thanks to this data visualization we can:

Different Thread settings

How all Kea backends operate with higher number of threads. For now testing setup is limited to 12 threads.

Kea configuration (similar to basic tests)

Number of threads

Queue pool size per thread

How various ways of host reservations configurations affect Kea performance

Each test has additional description

Compare performance penalty for each backend using different configuration options

All tests:

Test name: memfile multi threading reservations default global 30 mysql v4

How 3000 (30% of all clients) global reservations kept in mysql will decrease performance (leases in memfile)
Reservation optimization: None, default settings
MT settings: 14 threads, queue size 160 per thread

Test name: memfile multi threading reservations default global 30 mysql v6

How 3000 (30% of all clients) global reservations kept in mysql will decrease performance (leases in memfile)
Reservation optimization: None, default settings
MT settings: 14 threads, queue size 160 per thread

Test name: memfile multi threading reservations default global 30 postgresql v4

How 3000 (30% of all clients) global reservations kept in postgresql will decrease performance (leases in memfile)
Reservation optimization: None, default settings
MT settings: 8 threads, queue size 70 per thread