Results presented here show the maximum throughput of Kea using:
Tests here are using simplest configuration possible with default configuration.
ISC's perfdhcp generates simple DORA/SARR exchanges without any additional options or option requests. Normally we configure perfdhcp to simulate up to 500 million different clients (to avoid repeating any client IDs in the course of a single test) unless it's stated differently in the test description.
Kea can run in a special mode, using the memfile lease backend without writing leases to disk. Everything is kept in
memory (similar to keeping memfile on ramdisk).
Kea configuration, traffic specification and testing methodology is otherwise the same as with the basic test.
The reason this data is presented separately is because it can't be compared with the results using the other backends. We strongly discourage people from using this mode in production because Kea will not retain information on existing leases after restarting.
Running Kea with memfile lease backend with persist option set to False is NOT RECOMMENDED!
These tests use the basic Kea configuration described in the baseline test report with the simplest traffic characteristics. Other than thread count, the configuration is exactly the same as that used in the "Baseline results" test.
1. The first of these tests (results in the bar charts below) measures how the different Kea backends respond to variation in the number of threads used. The results of this test show that different Kea configurations require different settings for `thread-pool-size` to achieve optimum performance, measured in leases per second.
2. The second test (results in the line charts below) are using the value of `thread-pool-size` which had the highest results for that scenario from the first test. We vary the `packet-queue-size` value and measure the leases per second . This test shows that the optimum queue size depends on the Kea configuration.
We use the thread count settings ("thread-pool-size" and "packet-queue-size") that provide the optimum results from this test to establish the thread count configuration for the other tests included in this report.
Each test has an additional description. Set of bar charts display results comparison of single runs presented in second part of this page.
How 3000 (30% of all clients) global reservations kept in memfile decreases performance (leases in memfile)
Reservation optimization: None, default settings
MT settings: 4 threads, queue size 4 per thread
How 3000 (30% of all clients) global reservations kept in memfile decreases performance (leases in memfile)
Reservation optimization: None, default settings
MT settings: 4 threads, queue size 4 per thread
How 10000 (100% of all clients) global reservations kept in memfile decreases performance (leases in memfile)
Reservation optimization: None, default settings
MT settings: 4 threads, queue size 4 per thread
How 10000 (100% of all clients) global reservations kept in memfile decreases performance (leases in memfile)
Reservation optimization: None, default settings
MT settings: 4 threads, queue size 4 per thread
How 15000 (150% of all clients) global reservations kept in memfile decreases performance (leases in memfile)
Reservation optimization: None, default settings
MT settings: 4 threads, queue size 4 per thread
How 15000 (150% of all clients) global reservations kept in memfile decreases performance (leases in memfile)
Reservation optimization: None, default settings
MT settings: 4 threads, queue size 4 per thread
How 3000 (30% of all clients) subnet reservations kept in memfile decreases performance (leases in memfile)
Reservation optimization: None, default settings
MT settings: 4 threads, queue size 4 per thread
How 3000 (30% of all clients) subnet reservations kept in memfile decreases performance (leases in memfile)
Reservation optimization: None, default settings
MT settings: 4 threads, queue size 4 per thread
How 10000 (100% of all clients) subnet reservations kept in memfile decreases performance (leases in memfile)
Reservation optimization: None, default settings
MT settings: 4 threads, queue size 4 per thread
How 10000 (100% of all clients) subnet reservations kept in memfile decreases performance (leases in memfile)
Reservation optimization: None, default settings
MT settings: 4 threads, queue size 4 per thread
How 15000 (150% of all clients) subnet reservations kept in memfile decreases performance (leases in memfile)
Reservation optimization: None, default settings
MT settings: 4 threads, queue size 4 per thread
How 15000 (150% of all clients) subnet reservations kept in memfile decreases performance (leases in memfile)
Reservation optimization: None, default settings
MT settings: 4 threads, queue size 4 per thread
How 3000 (30% of all clients) global reservations kept in memfile decreases performance (leases in memfile)
Reservation optimization: host-reservation-identifiers set to hw-address, and reservation out-of-pool
MT settings: 4 threads, queue size 4 per thread
How 3000 (30% of all clients) global reservations kept in memfile decreases performance (leases in memfile)
Reservation optimization: host-reservation-identifiers set to hw-address, and reservation out-of-pool
MT settings: 4 threads, queue size 4 per thread
How 10000 (100% of all clients) global reservations kept in memfile decreases performance (leases in memfile)
Reservation optimization: host-reservation-identifiers set to hw-address, and reservation out-of-pool
MT settings: 4 threads, queue size 4 per thread
How 10000 (100% of all clients) global reservations kept in memfile decreases performance (leases in memfile)
Reservation optimization: host-reservation-identifiers set to hw-address, and reservation out-of-pool
MT settings: 4 threads, queue size 4 per thread
How 15000 (150% of all clients) global reservations kept in memfile decreases performance (leases in memfile)
Reservation optimization: host-reservation-identifiers set to hw-address, and reservation out-of-pool
MT settings: 4 threads, queue size 4 per thread
How 15000 (150% of all clients) global reservations kept in memfile decreases performance (leases in memfile)
Reservation optimization: host-reservation-identifiers set to hw-address, and reservation out-of-pool
MT settings: 4 threads, queue size 4 per thread
How 3000 (30% of all clients) subnet reservations kept in memfile decreases performance (leases in memfile)
Reservation optimization: host-reservation-identifiers set to hw-address, and reservation out-of-pool
MT settings: 4 threads, queue size 4 per thread
How 3000 (30% of all clients) subnet reservations kept in memfile decreases performance (leases in memfile)
Reservation optimization: host-reservation-identifiers set to hw-address, and reservation out-of-pool
MT settings: 4 threads, queue size 4 per thread
How 10000 (100% of all clients) subnet reservations kept in memfile decreases performance (leases in memfile)
Reservation optimization: host-reservation-identifiers set to hw-address, and reservation out-of-pool
MT settings: 4 threads, queue size 4 per thread
How 10000 (100% of all clients) subnet reservations kept in memfile decreases performance (leases in memfile)
Reservation optimization: host-reservation-identifiers set to hw-address, and reservation out-of-pool
MT settings: 4 threads, queue size 4 per thread
How 15000 (150% of all clients) subnet reservations kept in memfile decreases performance (leases in memfile)
Reservation optimization: host-reservation-identifiers set to hw-address, and reservation out-of-pool
MT settings: 4 threads, queue size 4 per thread
How 15000 (150% of all clients) subnet reservations kept in memfile decreases performance (leases in memfile)
Reservation optimization: host-reservation-identifiers set to hw-address, and reservation out-of-pool
MT settings: 4 threads, queue size 4 per thread
How 3000 (30% of all clients) global reservations kept in mysql decreases performance (leases in memfile)
Reservation optimization: None, default settings
MT settings: 14 threads, queue size 160 per thread
How 3000 (30% of all clients) global reservations kept in mysql decreases performance (leases in memfile)
Reservation optimization: None, default settings
MT settings: 14 threads, queue size 160 per thread
How 3000 (30% of all clients) global reservations kept in postgresql decreases performance (leases in memfile)
Reservation optimization: None, default settings
MT settings: 8 threads, queue size 70 per thread
How 3000 (30% of all clients) global reservations kept in postgresql decreases performance (leases in memfile)
Reservation optimization: None, default settings
MT settings: 6 threads, queue size 70 per thread
How 10000 (100% of all clients) global reservations kept in mysql decreases performance (leases in memfile)
Reservation optimization: None, default settings
MT settings: 14 threads, queue size 160 per thread
How 10000 (100% of all clients) global reservations kept in mysql decreases performance (leases in memfile)
Reservation optimization: None, default settings
MT settings: 14 threads, queue size 160 per thread
How 10000 (100% of all clients) global reservations kept in postgresql decreases performance (leases in memfile)
Reservation optimization: None, default settings
MT settings: 8 threads, queue size 70 per thread
How 10000 (100% of all clients) global reservations kept in postgresql decreases performance (leases in memfile)
Reservation optimization: None, default settings
MT settings: 6 threads, queue size 70 per thread
How 15000 (150% of all clients) global reservations kept in mysql decreases performance (leases in memfile)
Reservation optimization: None, default settings
MT settings: 14 threads, queue size 160 per thread
How 15000 (150% of all clients) global reservations kept in mysql decreases performance (leases in memfile)
Reservation optimization: None, default settings
MT settings: 14 threads, queue size 160 per thread
How 15000 (150% of all clients) global reservations kept in postgresql decreases performance (leases in memfile)
Reservation optimization: None, default settings
MT settings: 8 threads, queue size 70 per thread
How 15000 (150% of all clients) global reservations kept in postgresql decreases performance (leases in memfile)
Reservation optimization: None, default settings
MT settings: 6 threads, queue size 70 per thread
How 3000 (30% of all clients) subnet reservations kept in mysql decreases performance (leases in memfile)
Reservation optimization: None, default settings
MT settings: 14 threads, queue size 160 per thread
How 3000 (30% of all clients) subnet reservations kept in mysql decreases performance (leases in memfile)
Reservation optimization: None, default settings
MT settings: 14 threads, queue size 160 per thread
How 3000 (30% of all clients) subnet reservations kept in postgresql decreases performance (leases in memfile)
Reservation optimization: None, default settings
MT settings: 8 threads, queue size 70 per thread
How 3000 (30% of all clients) subnet reservations kept in postgresql decreases performance (leases in memfile)
Reservation optimization: None, default settings
MT settings: 6 threads, queue size 70 per thread
How 10000 (100% of all clients) subnet reservations kept in mysql decreases performance (leases in memfile)
Reservation optimization: None, default settings
MT settings: 14 threads, queue size 160 per thread
How 10000 (100% of all clients) subnet reservations kept in mysql decreases performance (leases in memfile)
Reservation optimization: None, default settings
MT settings: 14 threads, queue size 160 per thread
How 10000 (100% of all clients) subnet reservations kept in postgresql decreases performance (leases in memfile)
Reservation optimization: None, default settings
MT settings: 8 threads, queue size 70 per thread
How 10000 (100% of all clients) subnet reservations kept in postgresql decreases performance (leases in memfile)
Reservation optimization: None, default settings
MT settings: 6 threads, queue size 70 per thread
How 15000 (150% of all clients) subnet reservations kept in mysql decreases performance (leases in memfile)
Reservation optimization: None, default settings
MT settings: 14 threads, queue size 160 per thread
How 15000 (150% of all clients) subnet reservations kept in mysql decreases performance (leases in memfile)
Reservation optimization: None, default settings
MT settings: 14 threads, queue size 160 per thread
How 15000 (150% of all clients) subnet reservations kept in postgresql decreases performance (leases in memfile)
Reservation optimization: None, default settings
MT settings: 8 threads, queue size 70 per thread
How 15000 (150% of all clients) subnet reservations kept in postgresql decreases performance (leases in memfile)
Reservation optimization: None, default settings
MT settings: 6 threads, queue size 70 per thread
How 3000 (30% of all clients) global reservations kept in mysql decreases performance (leases in memfile)
Reservation optimization: host-reservation-identifiers set to hw-address, and reservation out-of-pool
MT settings: 14 threads, queue size 160 per thread
How 3000 (30% of all clients) global reservations kept in mysql decreases performance (leases in memfile)
Reservation optimization: host-reservation-identifiers set to hw-address, and reservation out-of-pool
MT settings: 14 threads, queue size 160 per thread
How 3000 (30% of all clients) global reservations kept in postgresql decreases performance (leases in memfile)
Reservation optimization: host-reservation-identifiers set to hw-address, and reservation out-of-pool
MT settings: 8 threads, queue size 70 per thread