Bug 1867604

Summary: ds/tuned roll out takes 100+ minutes on 250 node cluster
Product: OpenShift Container Platform Reporter: Scott Dodson <sdodson>
Component: Node Tuning OperatorAssignee: Jiří Mencák <jmencak>
Status: CLOSED ERRATA QA Contact: Simon <skordas>
Severity: medium Docs Contact:
Priority: medium    
Version: 4.4CC: sejug
Target Milestone: ---   
Target Release: 4.6.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-10-27 16:26:51 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Scott Dodson 2020-08-10 13:10:56 UTC
Description of problem:
Because ds/tuned defaults to rollingUpdate maxUnavialable 1 the rollout is entirely serialized and thus very slow on large clusters. We can speed the rollout of daemonsets which don't immediately affect availability by allowing the maxUnavailable to scale with cluster size.

A quick test on a 250 node cluster shows that the current behavior takes around 100 minutes where as with maxUnavailable 10% it takes under 10 minutes.

Version-Release number of selected component (if applicable):
4.4

How reproducible:
100%

Steps to Reproduce:
1. Install a cluster that's got 20 or more hosts
2. Perform an upgrade
3. Observe that only one pod is unavailable at once and the amount of time the upgrade takes. 

Actual results:
1 pod unavailable at a time, slow rollout

Expected results:
10% pods unavailable at most, faster / more parallel rollout

Additional info:

Comment 4 Simon 2020-08-25 19:06:28 UTC
$ oc get clusterversions.config.openshift.io 
NAME      VERSION                             AVAILABLE   PROGRESSING   SINCE   STATUS
version   4.6.0-0.nightly-2020-08-18-165040   True        False         4h14m   Cluster version is 4.6.0-0.nightly-2020-08-18-165040
$ oc get ds tuned -n openshift-cluster-node-tuning-operator -o json | jq ".spec.updateStrategy"
{
  "rollingUpdate": {
    "maxUnavailable": "10%"
  },
  "type": "RollingUpdate"
}

Comment 6 errata-xmlrpc 2020-10-27 16:26:51 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (OpenShift Container Platform 4.6 GA Images), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2020:4196