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

Bug 2007581: Change default balancing algorithm to "leastconn" #663

Conversation

Miciah
Copy link
Contributor

@Miciah Miciah commented Oct 15, 2021

Configure OpenShift router to use the "leastconn" balancing algorithm for non-passthrough routes by default.

This was the default algorithm for non-passthrough routes before it was changed to "random" in OpenShift 4.8. The "random" algorithm is expected to provide better behavior across reloads or multiple router pod replicas. However, it incurs significant memory overhead for each backend that uses it, and so we need to change the default back to "leastconn" in order to avoid excessive memory usage until we can fix the issue in HAProxy.

  • pkg/operator/controller/ingress/deployment.go (desiredRouterDeployment): Change the default balancing algorithm for non-passthrough routes to "leastconn", and allow an override to set "random".
  • pkg/operator/controller/ingress/deployment_test.go (TestDesiredRouterDeployment): Update to expect "leastconn".
  • test/e2e/operator_test.go (TestLoadBalancingAlgorithmUnsupportedConfigOverride): Update to expect "leastconn" as the default setting and verify that the override allows setting "random". Add a check that passthrough routes use "source".

Configure OpenShift router to use the "leastconn" balancing algorithm for
non-passthrough routes by default.

This was the default algorithm for non-passthrough routes before it was
changed to "random" in OpenShift 4.8.  The "random" algorithm is expected
to provide better behavior across reloads or multiple router pod replicas.
However, it incurs significant memory overhead for each backend that uses
it, and so we need to change the default back to "leastconn" in order to
avoid excessive memory usage until we can fix the issue in HAProxy.

This commit fixes bug 2007581.

https://bugzilla.redhat.com/show_bug.cgi?id=2007581

* pkg/operator/controller/ingress/deployment.go (desiredRouterDeployment):
Change the default balancing algorithm for non-passthrough routes to
"leastconn", and allow an override to set "random".
* pkg/operator/controller/ingress/deployment_test.go
(TestDesiredRouterDeployment): Update to expect "leastconn".
* test/e2e/operator_test.go
(TestLoadBalancingAlgorithmUnsupportedConfigOverride): Update to expect
"leastconn" as the default setting and verify that the override allows
setting "random".  Add a check that passthrough routes use "source".
@openshift-ci openshift-ci bot added the bugzilla/severity-high Referenced Bugzilla bug's severity is high for the branch this PR is targeting. label Oct 15, 2021
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Oct 15, 2021

@Miciah: This pull request references Bugzilla bug 2007581, which is invalid:

  • expected the bug to target the "4.10.0" release, but it targets "---" instead

Comment /bugzilla refresh to re-evaluate validity if changes to the Bugzilla bug are made, or edit the title of this pull request to link to a different bug.

In response to this:

Bug 2007581: Change default balancing algorithm to "leastconn"

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@openshift-ci openshift-ci bot added the bugzilla/invalid-bug Indicates that a referenced Bugzilla bug is invalid for the branch this PR is targeting. label Oct 15, 2021
@openshift-ci openshift-ci bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Oct 15, 2021
@frobware
Copy link
Contributor

/lgtm
/retest

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Oct 18, 2021

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: frobware, Miciah

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Oct 18, 2021
@openshift-bot
Copy link
Contributor

/bugzilla refresh

Recalculating validity in case the underlying Bugzilla bug has changed.

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Oct 19, 2021

@openshift-bot: This pull request references Bugzilla bug 2007581, which is invalid:

  • expected the bug to target the "4.10.0" release, but it targets "---" instead

Comment /bugzilla refresh to re-evaluate validity if changes to the Bugzilla bug are made, or edit the title of this pull request to link to a different bug.

In response to this:

/bugzilla refresh

Recalculating validity in case the underlying Bugzilla bug has changed.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@Miciah
Copy link
Contributor Author

Miciah commented Oct 19, 2021

/bugzilla refresh

@openshift-ci openshift-ci bot added bugzilla/valid-bug Indicates that a referenced Bugzilla bug is valid for the branch this PR is targeting. and removed bugzilla/invalid-bug Indicates that a referenced Bugzilla bug is invalid for the branch this PR is targeting. labels Oct 19, 2021
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Oct 19, 2021

@Miciah: This pull request references Bugzilla bug 2007581, which is valid. The bug has been moved to the POST state. The bug has been updated to refer to the pull request using the external bug tracker.

3 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target release (4.10.0) matches configured target release for branch (4.10.0)
  • bug is in the state ASSIGNED, which is one of the valid states (NEW, ASSIGNED, ON_DEV, POST, POST)

Requesting review from QA contact:
/cc @quarterpin

In response to this:

/bugzilla refresh

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@openshift-bot
Copy link
Contributor

/retest-required

Please review the full test history for this PR and help us cut down flakes.

1 similar comment
@openshift-bot
Copy link
Contributor

/retest-required

Please review the full test history for this PR and help us cut down flakes.

@openshift-merge-robot openshift-merge-robot merged commit fdd6c19 into openshift:master Oct 19, 2021
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Oct 19, 2021

@Miciah: All pull requests linked via external trackers have merged:

Bugzilla bug 2007581 has been moved to the MODIFIED state.

In response to this:

Bug 2007581: Change default balancing algorithm to "leastconn"

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@frobware
Copy link
Contributor

/cherry-pick release-4.9

@openshift-cherrypick-robot

@frobware: new pull request created: #667

In response to this:

/cherry-pick release-4.9

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. bugzilla/severity-high Referenced Bugzilla bug's severity is high for the branch this PR is targeting. bugzilla/valid-bug Indicates that a referenced Bugzilla bug is valid for the branch this PR is targeting. lgtm Indicates that a PR is ready to be merged.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants