-
Epic
-
Resolution: Done
-
Normal
-
None
-
Set default HAProxy maxconn value to 50000
-
Proactive Architecture
-
False
-
None
-
False
-
Green
-
To Do
-
OCPPLAN-7878 - NetEdge - Maintainability and Debugability & Tech Backlog
-
Impediment
-
OCPPLAN-7878NetEdge - Maintainability and Debugability & Tech Backlog
-
0% To Do, 0% In Progress, 100% Done
-
-
0
-
0
Epic Goal
- Change the default value for the spec.tuningOptions.maxConnections field in the IngressController API, which configures the HAProxy maxconn setting, to 50000 (fifty thousand).
Why is this important?
- The maxconn setting constrains the number of simultaneous connections that HAProxy accepts. Beyond this limit, the kernel queues incoming connections.
- Increasing maxconn enables HAProxy to queue incoming connections intelligently. In particular, this enables HAProxy to respond to health probes promptly while queueing other connections as needed.
- The default setting of 20000 has been in place since OpenShift 3.5 was released in April 2017 (see BZ#1405440, commit, RHBA-2017:0884).
- Hardware capabilities have increased over time, and the current default is too low for typical modern machine sizes.
- Increasing the default setting improves HAProxy's performance at an acceptable cost in the common case.
Scenarios
- As a cluster administrator who is installing OpenShift on typical hardware, I want OpenShift router to be tuned appropriately to take advantage of my hardware's capabilities.
Acceptance Criteria
- CI is passing.
- The new default setting is clearly documented.
- A release note informs cluster administrators of the change to the default setting.
Dependencies (internal and external)
- None.
Previous Work (Optional):
- The haproxy-max-connections-tuning enhancement made maxconn configurable without changing the default. The enhancement document details the tradeoffs in terms of memory for various settings of nbthreads and maxconn with various numbers of routes.
Open questions::
- ...
Done Checklist
- CI - CI is running, tests are automated and merged.
- Release Enablement <link to Feature Enablement Presentation>
- DEV - Upstream code and tests merged: <link to meaningful PR or GitHub Issue>
- DEV - Upstream documentation merged: <link to meaningful PR or GitHub Issue>
- DEV - Downstream build attached to advisory: <link to errata>
- QE - Test plans in Polarion: <link or reference to Polarion>
- QE - Automated tests merged: <link or reference to automated tests>
- DOC - Downstream documentation merged: <link to meaningful PR>
There are no Sub-Tasks for this issue.