Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Advice on scaling with kea-dhcp4 in Kubernetes? #35

Open
danryu opened this issue Mar 8, 2022 · 1 comment
Open

Advice on scaling with kea-dhcp4 in Kubernetes? #35

danryu opened this issue Mar 8, 2022 · 1 comment
Labels

Comments

@danryu
Copy link

danryu commented Mar 8, 2022

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
Copy link
Author

danryu commented Mar 11, 2022

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 :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants