1
0
mirror of https://github.com/openshift/openshift-docs.git synced 2026-02-05 12:46:18 +01:00

CNV-70994: Add CPU manager / pinning docs for CNV

This commit is contained in:
Ashleigh Brennan
2025-11-05 10:20:19 -06:00
committed by openshift-cherrypick-robot
parent 5ed28cfe58
commit 5eaa91fda2
3 changed files with 89 additions and 0 deletions

View File

@@ -4790,6 +4790,8 @@ Topics:
File: virt-post-install-network-config
- Name: Storage configuration
File: virt-post-install-storage-config
- Name: Performance optimization
File: virt-perf-optimization
- Name: Configuring higher VM workload density
File: virt-configuring-higher-vm-workload-density
- Name: Configuring certificate rotation

View File

@@ -0,0 +1,75 @@
// Module included in the following assemblies:
//
// * virt/post_installation_configuration/virt-perf-optimization.adoc
:_mod-docs-content-type: PROCEDURE
[id="virt-CPU-manager-policy_{context}"]
= Configuring full physical cores for virtual machines
[role="_abstract"]
As a cluster administrator, you can allocate a full physical core to a specific virtual machine (VM), instead of allowing different VMs to share the same physical core.
Configuring your VMs to use only full physical cores can optimize performance for high-throughput or latency-critical VMs.
Allocating only full physical cores is important on simultaneous multi-threading (SMT) enabled systems because it offers the following benefits:
* Prevents noisy neighbors and resource contention
* Mitigates performance degradation
* Offers predictable latency
* Guarantees exclusive CPU resources
You can configure full physical core allocation by modifying the `cpuManagerPolicy` and `cpuManagerPolicyOptions` settings in the `KubeletConfig` custom resource (CR).
.Prerequisites
* You have cluster administrator access to a {product-title} cluster with {VirtProductName} installed.
* You have installed the {oc-first}.
* You have enabled CPU Manager on the node where your VM runs.
.Procedure
. Edit the `KubeletConfig` CR to add the required `cpuManagerPolicy` and `cpuManagerPolicyOptions` configurations:
+
[source,yaml]
----
apiVersion: machineconfiguration.openshift.io/v1
kind: KubeletConfig
# ...
cpuManagerPolicy: static
cpuManagerPolicyOptions:
full-pcpus-only: true
kubeReserved:
cpu: "1"
# ...
----
+
* You must set the `cpuManagerPolicy: static` policy to enable exclusive CPU allocation. This setting is a prerequisite for configuring the `cpuManagerPolicyOptions` settings.
* You must set the `full-pcpus-only: true` policy option so that the static CPU Manager policy only allocates full physical cores.
* You must reserve 1 CPU for the system by setting `cpu: "1"` in the `kubeReserved` settings. This ensures that the cluster remains stable, by requiring that the system's core functions always have access to the CPU that they need to work correctly.
. Run the following command to apply the changes to the `KubeletConfig` CR:
+
[source,terminal]
----
$ oc apply -f <filename>.yaml
----
.Verification
* Inspect the kubelet configuration on a node where the change you applied the change, by running the following command and inspecting the output:
+
[source,terminal]
----
$ oc debug node/<node_name> -- chroot /host cat /etc/kubernetes/kubelet.conf | grep -E -A 2 'cpuManagerPolicy|kubeReserved'
----
+
Example output:
+
[source,YAML]
----
cpuManagerPolicy: static
cpuManagerPolicyOptions:
full-pcpus-only: true
--
kubeReserved:
cpu: "1"
----

View File

@@ -0,0 +1,12 @@
:_mod-docs-content-type: ASSEMBLY
include::_attributes/common-attributes.adoc[]
[id="virt-perf-optimization"]
= Performance optimization
:context: virt-perf-optimization
toc::[]
[role="_abstract"]
You can modify certain configurations for your {VirtProductName} deployment to improve efficiency, cost-effectiveness, and reliability.
include::modules/virt-CPU-manager-policy.adoc[leveloffset=+1]