OCPBUGS-24012: Add templates for gc_thresh sysctls#4048
Conversation
The net.ipv[46].neigh.default.gc_thresh[1-3] have traditionally been set by the Node Tuning Operator. With OpenShift 4.13, NTO is now an optional operator. These sysctls tune kernel's ARP cache. For large scale clusters, the default kernel parameters are too low and result in issues such as rhbz#1384746. In the absence of NTO and customer clusters getting larger, these sysctls need to be set elsewhere. Setting these values early on cluster boot (prior to container startups) will also prevent issues such as OCPBUGS-24012. Fixes: OCPBUGS-24012
|
@jmencak: This pull request references Jira Issue OCPBUGS-24012, which is invalid:
Comment The bug has been updated to refer to the pull request using the external bug tracker. DetailsIn response to this:
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. |
|
/jira refresh |
|
@jmencak: This pull request references Jira Issue OCPBUGS-24012, which is valid. The bug has been moved to the POST state. 3 validation(s) were run on this bug
No GitHub users were found matching the public email listed for the QA contact in Jira (liqcui@redhat.com), skipping review request. DetailsIn response to this:
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. |
|
/retest |
yuqi-zhang
left a comment
There was a problem hiding this comment.
Am I correct in understanding that for most clusters, we don't hit these thresholds, so it's mostly a safe change?
Can approve from the MCO code standpoint but it would be best if someone could test whether this is working properly
That's correct. These sysctls are not needed on regular-sized clusters. The issues arise with 100s of nodes. With OpenShiftSDN, I also remember large number of routes were also causing the same issues, but I cannot reproduce the "large route number" issue with OVNKubernetes, so it seems only large number of nodes issue. |
|
@dagrayvid , you're most familiar with this given the work on optional NTO and #3440 Can I have a review of this, please? Thank you. |
|
It looks good to me. I wonder if we want to standardize on a file name scheme for the sysctl .conf files in this directory? I see one that is named It's not urgent to fix this in this PR. |
Good point, @dagrayvid. Not sure on what would the MCO team want to standardize on. At this point, I'm aiming to get the fix in for 4.15.0 and we're running out of time. The cleanup should be a part of another PR in my view. |
|
/lgtm |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: dagrayvid, jmencak, yuqi-zhang The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
The naming schema fortunately doesn't affect actual processing at all, so that's a minor point we can clean up in a later PR. There's a known hypershift failure, once that's fixed this should be able to merge. |
|
/retest |
|
/test e2e-hypershift |
|
/retest |
|
/hold Revision 5588797 was retested 3 times: holding |
|
/hold cancel |
|
@jmencak: all tests passed! Full PR test history. Your PR dashboard. DetailsInstructions 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. I understand the commands that are listed here. |
|
@jmencak: Jira Issue OCPBUGS-24012: All pull requests linked via external trackers have merged: Jira Issue OCPBUGS-24012 has been moved to the MODIFIED state. DetailsIn response to this:
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. |
|
[ART PR BUILD NOTIFIER] This PR has been included in build openshift-proxy-pull-test-container-v4.16.0-202312071150.p0.gdb97b28.assembly.stream for distgit openshift-proxy-pull-test. |
|
Fix included in accepted release 4.15.0-0.nightly-2023-12-07-225558 |
- What I did
The net.ipv[46].neigh.default.gc_thresh[1-3] have traditionally been set by the Node Tuning Operator. With OpenShift 4.13, NTO is now an optional operator. These sysctls tune kernel's ARP cache. For large scale clusters, the default kernel parameters are too low and result in issues such as rhbz#1384746. In the absence of NTO and customer clusters getting larger, these sysctls need to be set elsewhere.
Setting these values early on cluster boot (prior to container startups) will also prevent issues such as OCPBUGS-24012.
Fixes: OCPBUGS-24012
- How to verify it
Check the file /etc/sysctl.d/gc-thresh.conf exists in a new cluster with:
- Description for the changelog
Add /etc/sysctl.d/gc-thresh.conf file to bump ARP cache limits.