Skip to content

Commit 893e021

Browse files
author
Daniel Chadwick
committed
osdocs17086 Configuring Last Level Cache locality for MicroShift
1 parent 33ace5c commit 893e021

15 files changed

Lines changed: 118 additions & 96 deletions

microshift_configuring/microshift_low_latency/microshift-low-latency.adoc

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,15 @@ include::_attributes/attributes-microshift.adoc[]
66

77
toc::[]
88

9+
[role="_abstract"]
910
You can configure and tune low latency capabilities to improve application performance on edge devices.
1011
1112
include::modules/microshift-low-latency-concept.adoc[leveloffset=+1]
1213
1314
//additional resources for the low latency concept
1415
[role="_additional-resources"]
1516
.Additional resources
16-
* link:https://docs.redhat.com/en/documentation/openshift_container_platform/{ocp-version}/html/scalability_and_performance/low-latency-tuning#cnf-understanding-low-latency_cnf-understanding-low-latency[About low latency] ({OCP} documentation)
17+
* link:https://docs.redhat.com/en/documentation/openshift_container_platform/{ocp-version}/html/scalability_and_performance/low-latency-tuning#cnf-understanding-low-latency_cnf-understanding-low-latency[About low latency ({OCP} documentation)]
1718
1819
include::modules/microshift-install-rpms-low-latency.adoc[leveloffset=+1]
1920
@@ -23,7 +24,7 @@ include::modules/microshift-low-latency-config-yaml.adoc[leveloffset=+1]
2324
[role="_additional-resources"]
2425
.Additional resources
2526
* xref:../../microshift_configuring/microshift-using-config-yaml.adoc#microshift-using-config-yaml[Customizing {microshift-short} by using the configuration file]
26-
* link:https://kubernetes.io/docs/reference/config-api/kubelet-config.v1beta1/#kubelet-config-k8s-io-v1beta1-KubeletConfiguration[KubeletConfiguration reference] (Kubernetes upstream documentation)
27+
* link:https://kubernetes.io/docs/reference/config-api/kubelet-config.v1beta1/#kubelet-config-k8s-io-v1beta1-KubeletConfiguration[KubeletConfiguration reference (Kubernetes upstream documentation)]
2728
2829
include::modules/microshift-low-latency-llc.adoc[leveloffset=+1]
2930
@@ -45,8 +46,8 @@ include::modules/microshift-low-latency-tuned-profile.adoc[leveloffset=+2]
4546
[role="_additional-resources"]
4647
[id="additional-resources-tuned-profile_{context}"]
4748
.Additional resources
48-
* link:https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html/monitoring_and_managing_system_status_and_performance/getting-started-with-tuned_monitoring-and-managing-system-status-and-performance[Getting started with TuneD] (RHEL documentation)
49-
* link:https://www.redhat.com/sysadmin/linux-tuned-tuning-profiles[How to manage tuning profiles in Linux] (Red Hat blog)
49+
* link:https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html/monitoring_and_managing_system_status_and_performance/getting-started-with-tuned_monitoring-and-managing-system-status-and-performance[Getting started with TuneD (RHEL documentation)]
50+
* link:https://www.redhat.com/sysadmin/linux-tuned-tuning-profiles[How to manage tuning profiles in Linux (Red Hat blog)]
5051

5152
//microshift-baseline is the name of the profile and used for automatic activation settings
5253
include::modules/microshift-low-latency-tuned-auto.adoc[leveloffset=+2]
@@ -64,21 +65,18 @@ include::modules/microshift-low-latency-install-kernelrt-rpm.adoc[leveloffset=+2
6465

6566
include::modules/microshift-low-latency-install-kernelrt-rhel-edge.adoc[leveloffset=+2]
6667

67-
[id="microshift-low-latency-install-kernelrt-rhel-edge-buildimage_{context}"]
68-
== Building the {op-system-ostree-first} image with the real-time kernel
69-
70-
Complete the build process by starting with the following procedure to embed {microshift-short}in a {op-system-ostree} image. Then complete the remaining steps in the installation documentation for installing {microshift-short} in a {op-system-ostree} image:
68+
include::modules/microshift-low-latency-buildimage.adoc[leveloffset=+2]
7169

7270
* xref:../../microshift_install_rpm_ostree/microshift-embed-in-rpm-ostree.adoc#microshift-creating-ostree-iso_microshift-embed-in-rpm-ostree[Embedding in a {op-system-ostree} image]
7371
7472
//additional resources for real-time kernel
7573
[role="_additional-resources"]
7674
[id="additional-resources-rtk_{context}"]
7775
.Additional resources
78-
* link:https://docs.redhat.com/en/documentation/red_hat_enterprise_linux_for_real_time/9[Red Hat Enterprise Linux for Real Time 9] ({op-system-base} documentation)
79-
* link:https://osbuild.org/docs/on-premises/installation/managing-repositories/#using-repositories-that-require-subscription[Using repositories that require subscription] (osbuild documentation)
80-
* link:https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html/composing_a_customized_rhel_system_image/creating-system-images-with-composer-command-line-interface_composing-a-customized-rhel-system-image#building-rhel-images-by-using-the-real-time-kernel_creating-system-images-with-composer-command-line-interface[Building {op-system-base} images by using the {op-system-rtk}] for more information.
81-
* link:https://docs.redhat.com/en/documentation/red_hat_enterprise_linux_for_real_time/9/html/installing_rhel_9_for_real_time/assembly_installing-rhel-for-real-time_installing-rhel-9-for-real-time#post-installation-instructions_assembly_installing-rhel-for-real-time[Post installation instructions] (RHEL for Real Time documentation)
76+
* link:https://docs.redhat.com/en/documentation/red_hat_enterprise_linux_for_real_time/9[Red Hat Enterprise Linux for Real Time 9 ({op-system-base} documentation)]
77+
* link:https://osbuild.org/docs/on-premises/installation/managing-repositories/#using-repositories-that-require-subscription[Using repositories that require subscription (osbuild documentation)]
78+
* link:https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html/composing_a_customized_rhel_system_image/creating-system-images-with-composer-command-line-interface_composing-a-customized-rhel-system-image#building-rhel-images-by-using-the-real-time-kernel_creating-system-images-with-composer-command-line-interface[Building {op-system-base} images by using the {op-system-rtk}]
79+
* link:https://docs.redhat.com/en/documentation/red_hat_enterprise_linux_for_real_time/9/html/installing_rhel_9_for_real_time/assembly_installing-rhel-for-real-time_installing-rhel-9-for-real-time#post-installation-instructions_assembly_installing-rhel-for-real-time[Post installation instructions (RHEL for Real Time documentation)]
8280
* xref:../../microshift_install_rpm_ostree/microshift-embed-in-rpm-ostree.adoc#microshift-embed-in-rpm-ostree[Embedding in a {op-system-ostree} image]
8381
8482
include::modules/microshift-low-latency-prepare-workload.adoc[leveloffset=+1]
@@ -88,11 +86,11 @@ include::modules/microshift-low-latency-prepare-workload.adoc[leveloffset=+1]
8886
[id="additional-resources-prep-workload_{context}"]
8987
.Additional resources
9088

91-
* link:https://docs.openshift.com/container-platform/{ocp-version}/scalability_and_performance/low_latency_tuning/cnf-provisioning-low-latency-workloads.html#cnf-configuring-high-priority-workload-pods_cnf-provisioning-low-latency[Disabling power saving mode for high priority pods] ({OCP} documentation)
89+
* link:https://docs.openshift.com/container-platform/{ocp-version}/scalability_and_performance/low_latency_tuning/cnf-provisioning-low-latency-workloads.html#cnf-configuring-high-priority-workload-pods_cnf-provisioning-low-latency[Disabling power saving mode for high priority pods ({OCP} documentation)]
9290
93-
* link:https://docs.openshift.com/container-platform/{ocp-version}/scalability_and_performance/low_latency_tuning/cnf-provisioning-low-latency-workloads.html#cnf-disabling-cpu-cfs-quota_cnf-provisioning-low-latency[Disabling CPU CFS quota] ({OCP} documentation)
91+
* link:https://docs.openshift.com/container-platform/{ocp-version}/scalability_and_performance/low_latency_tuning/cnf-provisioning-low-latency-workloads.html#cnf-disabling-cpu-cfs-quota_cnf-provisioning-low-latency[Disabling CPU CFS quota ({OCP} documentation)]
9492
95-
* link:https://docs.openshift.com/container-platform/{ocp-version}/scalability_and_performance/low_latency_tuning/cnf-provisioning-low-latency-workloads.html#cnf-disabling-interrupt-processing-for-individual-pods_cnf-provisioning-low-latency[Disabling interrupt processing for CPUs where pinned containers are running] ({OCP} documentation)
93+
* link:https://docs.openshift.com/container-platform/{ocp-version}/scalability_and_performance/low_latency_tuning/cnf-provisioning-low-latency-workloads.html#cnf-disabling-interrupt-processing-for-individual-pods_cnf-provisioning-low-latency[Disabling interrupt processing for CPUs where pinned containers are running ({OCP} documentation)]
9694
9795
include::modules/microshift-low-latency-rhel-edge-blueprint-rtk.adoc[leveloffset=+1]
9896

microshift_configuring/microshift_low_latency/microshift-workload-partitioning.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ include::_attributes/attributes-microshift.adoc[]
66

77
toc::[]
88

9+
[role="_abstract"]
910
Workload partitioning divides the node CPU resources into distinct CPU sets. The primary objective is to limit the amount of CPU usage for all control plane components which reserves rest of the device CPU resources for workloads of the user.
1011

1112
Workload partitioning allocates reserved set of CPUs to {microshift-short} services, cluster management workloads, and infrastructure pods, ensuring that the remaining CPUs in the cluster deployment are untouched and available exclusively for non-platform workloads.

modules/microshift-enabling-workload-partitioning.adoc

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
[id="microshift-enabling-workload-partitioning_{context}"]
77
= Enabling workload partitioning
88

9+
[role="_abstract"]
910
To enable workload partitioning on {microshift-short}, make the following configuration changes:
1011

1112
* Update the {microshift-short} `config.yaml` file to include the kubelet configuration file.
@@ -23,28 +24,28 @@ To enable workload partitioning on {microshift-short}, make the following config
2324
# ...
2425
{
2526
"management": {
26-
"cpuset": "0,6,7" <1>
27+
"cpuset": "0,6,7"
2728
}
2829
}
2930
# ...
3031
----
31-
<1> The `cpuset` applies to a machine with 8 VCPUs (4 cores) and is valid throughout the document.
32+
* `cpuset`: The `cpuset` applies to a machine with 8 VCPUs (4 cores) and is valid throughout the document.
3233
* Update the {microshift-short} config.yaml file in the path `/etc/microshift/config.yaml`. Embed the kubelet configuration in the {microshift-short} `config.yaml` file to enable and configure CPU Manager for the workloads.
3334
+
3435
.{microshift-short} `config.yaml` example
3536
[source,yaml]
3637
----
3738
# ...
3839
kubelet:
39-
reservedSystemCPUs: 0,6,7 <1>
40+
reservedSystemCPUs: 0,6,7
4041
cpuManagerPolicy: static
4142
cpuManagerPolicyOptions:
42-
full-pcpus-only: "true" <2>
43+
full-pcpus-only: "true"
4344
cpuManagerReconcilePeriod: 5s
4445
# ...
4546
----
46-
<1> Exclusive cpuset for the system daemons and the interrupts/timers.
47-
<2> kubelet configuration sets the `CPUManagerPolicyOptions` option to `full-pcpus-only` to ensure allocation of whole cores to the containers workload.
47+
* `reservedSystemCPUs`: Exclusive cpuset for the system daemons and the interrupts/timers.
48+
* `full-pcpus-only`: kubelet configuration sets the `CPUManagerPolicyOptions` option to `full-pcpus-only` to ensure allocation of whole cores to the containers workload.
4849
4950
. Create the CRI-O systemd and configuration files:
5051
* Create the CRI-O configuration file in the path `/etc/crio/crio.conf.d/20-microshift-workload-partition.conf` which overrides the default configuration that already exists in the `11-microshift-ovn.conf` file.

modules/microshift-install-rpms-low-latency.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
[id="microshift-installing-low-latency-rpm-package_{context}"]
77
= Installing the {microshift-short} low latency RPM package
88

9+
[role="_abstract"]
910
When you install {microshift-short}, the low latency RPM package is not installed by default. You can install the low latency RPM as an optional package.
1011

1112
.Prerequisites
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
// Module included in the following assemblies:
2+
//
3+
// microshift_configuring/microshift_low_latency/microshift-low-latency.adoc
4+
5+
:_mod-docs-content-type: CONCEPT
6+
[id="microshift-low-latency-install-kernelrt-rhel-edge-buildimage_{context}"]
7+
= Building the {op-system-ostree-first} image with the real-time kernel
8+
9+
[role="_abstract"]
10+
Complete the build process by starting with the following procedure to embed {microshift-short}in a {op-system-ostree} image. Then complete the remaining steps in the installation documentation for installing {microshift-short} in a {op-system-ostree} image:

modules/microshift-low-latency-concept.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
[id="microshift-low-latency-concept_{context}"]
77
= Lowering latency in {microshift-short} applications
88

9+
[role="_abstract"]
910
Latency is defined as the time from an event to the response to that event. You can use low latency configurations and tuning in a {microshift-short} node running in an operational or software-defined control system where an edge device has to respond quickly to an external event. You can fully optimize low latency performance by combining {microshift-short} configurations with operating system tuning and workload partitioning.
1011

1112
[IMPORTANT]

0 commit comments

Comments
 (0)