mirror of
https://github.com/openshift/openshift-docs.git
synced 2026-02-05 12:46:18 +01:00
144 lines
4.7 KiB
Plaintext
144 lines
4.7 KiB
Plaintext
// Module included in the following assemblies:
|
|
//
|
|
// *scalability_and_performance/cnf-numa-aware-scheduling.adoc
|
|
|
|
:_module-type: PROCEDURE
|
|
[id="cnf-reporting-more-exact-resource-availability_{context}"]
|
|
= Reporting more exact resource availability
|
|
|
|
Enable the `cacheResyncPeriod` specification to help the NUMA Resources Operator report more exact resource availability by monitoring pending resources on nodes and synchronizing this information in the scheduler cache at a defined interval. This also helps to minimize Topology Affinity Error errors because of sub-optimal scheduling decisions. The lower the interval, the greater the network load. The `cacheResyncPeriod` specification is disabled by default.
|
|
|
|
.Prerequisites
|
|
|
|
* Install the OpenShift CLI (`oc`).
|
|
* Log in as a user with `cluster-admin` privileges.
|
|
|
|
.Procedure
|
|
|
|
. Delete the currently running `NUMAResourcesScheduler` resource:
|
|
|
|
.. Get the active `NUMAResourcesScheduler` by running the following command:
|
|
+
|
|
[source,terminal]
|
|
----
|
|
$ oc get NUMAResourcesScheduler
|
|
----
|
|
+
|
|
.Example output
|
|
[source,terminal]
|
|
----
|
|
NAME AGE
|
|
numaresourcesscheduler 92m
|
|
----
|
|
|
|
.. Delete the secondary scheduler resource by running the following command:
|
|
+
|
|
[source,terminal]
|
|
----
|
|
$ oc delete NUMAResourcesScheduler numaresourcesscheduler
|
|
----
|
|
+
|
|
.Example output
|
|
[source,terminal]
|
|
----
|
|
numaresourcesscheduler.nodetopology.openshift.io "numaresourcesscheduler" deleted
|
|
----
|
|
|
|
. Save the following YAML in the file `nro-scheduler-cacheresync.yaml`. This example changes the log level to `Debug`:
|
|
+
|
|
[source,yaml,subs="attributes+"]
|
|
----
|
|
apiVersion: nodetopology.openshift.io/v1
|
|
kind: NUMAResourcesScheduler
|
|
metadata:
|
|
name: numaresourcesscheduler
|
|
spec:
|
|
imageSpec: "registry.redhat.io/openshift4/noderesourcetopology-scheduler-container-rhel8:v{product-version}"
|
|
cacheResyncPeriod: "5s" <1>
|
|
----
|
|
+
|
|
<1> Enter an interval value in seconds for synchronization of the scheduler cache. A value of `5s` is typical for most implementations.
|
|
|
|
. Create the updated `NUMAResourcesScheduler` resource by running the following command:
|
|
+
|
|
[source,terminal]
|
|
----
|
|
$ oc create -f nro-scheduler-cacheresync.yaml
|
|
----
|
|
+
|
|
.Example output
|
|
[source,terminal]
|
|
----
|
|
numaresourcesscheduler.nodetopology.openshift.io/numaresourcesscheduler created
|
|
----
|
|
|
|
.Verification steps
|
|
|
|
. Check that the NUMA-aware scheduler was successfully deployed:
|
|
|
|
.. Run the following command to check that the CRD is created successfully:
|
|
+
|
|
[source,terminal]
|
|
----
|
|
$ oc get crd | grep numaresourcesschedulers
|
|
----
|
|
+
|
|
.Example output
|
|
[source,terminal]
|
|
----
|
|
NAME CREATED AT
|
|
numaresourcesschedulers.nodetopology.openshift.io 2022-02-25T11:57:03Z
|
|
----
|
|
|
|
.. Check that the new custom scheduler is available by running the following command:
|
|
+
|
|
[source,terminal]
|
|
----
|
|
$ oc get numaresourcesschedulers.nodetopology.openshift.io
|
|
----
|
|
+
|
|
.Example output
|
|
[source,terminal]
|
|
----
|
|
NAME AGE
|
|
numaresourcesscheduler 3h26m
|
|
----
|
|
|
|
. Check that the logs for the scheduler show the increased log level:
|
|
|
|
.. Get the list of pods running in the `openshift-numaresources` namespace by running the following command:
|
|
+
|
|
[source,terminal]
|
|
----
|
|
$ oc get pods -n openshift-numaresources
|
|
----
|
|
+
|
|
.Example output
|
|
[source,terminal]
|
|
----
|
|
NAME READY STATUS RESTARTS AGE
|
|
numaresources-controller-manager-d87d79587-76mrm 1/1 Running 0 46h
|
|
numaresourcesoperator-worker-5wm2k 2/2 Running 0 45h
|
|
numaresourcesoperator-worker-pb75c 2/2 Running 0 45h
|
|
secondary-scheduler-7976c4d466-qm4sc 1/1 Running 0 21m
|
|
----
|
|
|
|
.. Get the logs for the secondary scheduler pod by running the following command:
|
|
+
|
|
[source,terminal]
|
|
----
|
|
$ oc logs secondary-scheduler-7976c4d466-qm4sc -n openshift-numaresources
|
|
----
|
|
+
|
|
.Example output
|
|
[source,terminal]
|
|
----
|
|
...
|
|
I0223 11:04:55.614788 1 reflector.go:535] k8s.io/client-go/informers/factory.go:134: Watch close - *v1.Namespace total 11 items received
|
|
I0223 11:04:56.609114 1 reflector.go:535] k8s.io/client-go/informers/factory.go:134: Watch close - *v1.ReplicationController total 10 items received
|
|
I0223 11:05:22.626818 1 reflector.go:535] k8s.io/client-go/informers/factory.go:134: Watch close - *v1.StorageClass total 7 items received
|
|
I0223 11:05:31.610356 1 reflector.go:535] k8s.io/client-go/informers/factory.go:134: Watch close - *v1.PodDisruptionBudget total 7 items received
|
|
I0223 11:05:31.713032 1 eventhandlers.go:186] "Add event for scheduled pod" pod="openshift-marketplace/certified-operators-thtvq"
|
|
I0223 11:05:53.461016 1 eventhandlers.go:244] "Delete event for scheduled pod" pod="openshift-marketplace/certified-operators-thtvq"
|
|
----
|