dhcplb icon indicating copy to clipboard operation
dhcplb copied to clipboard

Advice on scaling with kea-dhcp4 in Kubernetes?

Open danryu opened this issue 4 years ago • 1 comments

I am loadtesting a Kea DHCPv4 deployment in Kubernetes, and the objective is to reach 10000 DORA transactions per second, with 0.00% drop ratio.

Current setup:

  • 10 x kea-perdhcp pods running 1000 transactions each (eg perfdhcp -xi -t1 -r1000 -R5000 -p30 DHCPLB_CLUSTERIP)
  • 1 x DHCPLB pod + service (ClusterIP) in relay mode, throttling* params = 0
  • N x Kea-dhcp4 pods - in-memory lease DB per pod

I scale kea-dhcp4 pods from N=1 to N=40.

Unfortunately I cannot get any kind of effective scaling past 7 pods, and the drop-ratio reaches only a minimum of ~10%. Please refer to the plot below (shows data for dhcplb container running in both privileged and unprivileged modes). I would be grateful for any suggestions, and can share more test details on request of course.

dhcplb_kea_scaling

danryu avatar Mar 08 '22 07:03 danryu

Update: I can get the DORA drop ratio to around 1% by playing with the packet_buf_size.

For performance-testing, I set:

"throttle_cache_size": 1024,                                                                                                                                                                                                                                        
"throttle_cache_rate": 0,                                                                                                                                                                                                                                           
"throttle_rate": 0

as I do not want to do any throttling, but it's unclear from the docs whether throttle_cache_size has any impact on performance. It needs to be set to a positive integer - what would be optimal for performance-testing, or does it have no impact?

Very grateful for any and all observations/comments/advice :)

danryu avatar Mar 11 '22 13:03 danryu