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

feat: disable client-side throttling #3293

Merged
merged 1 commit into from Jun 9, 2022
Merged

Conversation

karlkfi
Copy link
Contributor

@karlkfi karlkfi commented Jun 7, 2022

  • Disable client-side throttling when server-side throttling is enabled.
    Otherwise default to 30 QPS (60 burst QPS).
    This is an increase from the rest.Config default of 5 QPS.

Based on my local performance testing, it looks like kpt v1.0.0-beta.16 has a performance regression that defaults the applier to 5 QPS. I haven't quite figured out why, but earlier versions (like v1.0.0-beta.15) are much faster.

This change both fixes the regression and removes the QPS limit on servers where server-side throttling is enabled. The beta feature flag is enabled by default on K8s v1.20+.

- Disable client-side throttling when server-side throttling is enabled.
  Otherwise default to 30 QPS (60 burst QPS).
  This is an increase from the rest.Config default of 5 QPS.
@karlkfi
Copy link
Contributor Author

karlkfi commented Jun 7, 2022

My performance testing results:

kpt version kpt live apply kpt live destroy
v1.0.0-beta.15 4m38.855s 6m39.967s
v1.0.0-beta.16 36m16.383s 7m42.252s
pull/3293 4m27.818s 0m55.147s

These times are for applying 1,000 Nginx Deployments with 1 replica each into an existing Namespace on a Kind v0.12.0 cluster running K8s v1.23.4.

@karlkfi karlkfi merged commit 99aeadc into kptdev:main Jun 9, 2022
@karlkfi karlkfi deleted the karl-fix-qps branch June 9, 2022 12:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants