Skip to content

Commit e869e98

Browse files
authored
Merge pull request #80236 from ShaunaDiaz/OSDOCS-11444
OSDOCS-11444: Adds low latency to MicroShift
2 parents 563d218 + 9bd4d6a commit e869e98

20 files changed

+776
-4
lines changed

_attributes/attributes-microshift.adoc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
:op-system-base: RHEL
1919
:op-system-ostree-first: Red Hat Enterprise Linux for Edge (RHEL for Edge)
2020
:op-system-ostree: RHEL for Edge
21+
:op-system-rt-kernel: Red Hat Enterprise Linux for Real Time (real-time kernel)
22+
:op-system-rtk: real-time kernel
2123
:op-system-version: 9.4
2224
:op-system-version-major: 9
2325
:op-system-bundle: Red Hat Device Edge

_topic_maps/_topic_map_ms.yml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -397,8 +397,13 @@ Topics:
397397
File: microshift-greenboot-checking-status
398398
- Name: Configuring audit logging policies
399399
File: microshift-audit-logs-config
400-
- Name: Workload partitioning
401-
File: microshift-workload-partitioning
400+
- Name: Configuring low latency
401+
Dir: microshift_low_latency
402+
Topics:
403+
- Name: Configuring low latency
404+
File: microshift-low-latency
405+
- Name: Workload partitioning
406+
File: microshift-workload-partitioning
402407
---
403408
Name: Networking
404409
Dir: microshift_networking
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../_attributes/
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../images/
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
:_mod-docs-content-type: ASSEMBLY
2+
[id="microshift-low-latency"]
3+
= Configuring low latency
4+
include::_attributes/attributes-microshift.adoc[]
5+
:context: microshift-low-latency
6+
7+
toc::[]
8+
9+
You can configure and tune low latency capabilities to improve application performance on edge devices.
10+
11+
include::modules/microshift-low-latency-concept.adoc[leveloffset=+1]
12+
13+
//additional resources for the low latency concept
14+
[role="_additional-resources"]
15+
.Additional resources
16+
* link:https://docs.redhat.com/en/documentation/openshift_container_platform/4.16/html/scalability_and_performance/low-latency-tuning#cnf-understanding-low-latency_cnf-understanding-low-latency[About low latency] (OpenShift Container Platform documentation)
17+
18+
include::modules/microshift-install-rpms-low-latency.adoc[leveloffset=+1]
19+
20+
include::modules/microshift-low-latency-config-yaml.adoc[leveloffset=+1]
21+
22+
//additional resources for the config.yaml
23+
[role="_additional-resources"]
24+
.Additional resources
25+
//TODO * workload partitioning crossref here
26+
* xref:../../microshift_configuring/microshift-using-config-tools.adoc#microshift-config-yaml_microshift-configuring[Using a YAML configuration file]
27+
* link:https://kubernetes.io/docs/reference/config-api/kubelet-config.v1beta1/#kubelet-config-k8s-io-v1beta1-KubeletConfiguration[KubeletConfiguration reference] (Kubernetes upstream documentation)
28+
29+
//RHEL TuneD
30+
include::modules/microshift-low-latency-tuned-conc.adoc[leveloffset=+1]
31+
32+
//microshift-baseline is the name of the profile and used for automatic activation settings
33+
//microshift-baseline-variables.conf is the file for user tweaks
34+
include::modules/microshift-low-latency-tuned-profile.adoc[leveloffset=+2]
35+
36+
//additional resources for tuned profiles
37+
[role="_additional-resources"]
38+
[id="additional-resources-tuned-profile_{context}"]
39+
.Additional resources
40+
* 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)
41+
* link:https://www.redhat.com/sysadmin/linux-tuned-tuning-profiles[How to manage tuning profiles in Linux] (Red Hat blog)
42+
43+
//microshift-baseline is the name of the profile and used for automatic activation settings
44+
include::modules/microshift-low-latency-tuned-auto.adoc[leveloffset=+2]
45+
46+
//additional resources for tuned profiles automatic activation
47+
[role="_additional-resources"]
48+
[id="additional-resources-tuned-auto_{context}"]
49+
.Additional resources
50+
* xref:../../microshift_install/microshift-greenboot.adoc#greenboot-directories-details_microshift-greenboot[Greenboot directories details]
51+
52+
//RHEL real-time kernel
53+
include::modules/microshift-low-latency-kernelrt-conc.adoc[leveloffset=+1]
54+
55+
include::modules/microshift-low-latency-install-kernelrt-rpm.adoc[leveloffset=+2]
56+
57+
include::modules/microshift-low-latency-install-kernelrt-rhel-edge.adoc[leveloffset=+2]
58+
59+
[id="microshift-low-latency-install-kernelrt-rhel-edge-buildimage_{context}"]
60+
== Building the {op-system-ostree-first} image with the real-time kernel
61+
62+
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:
63+
64+
* xref:../../microshift_install/microshift-embed-in-rpm-ostree.adoc#microshift-creating-ostree-iso_microshift-embed-in-rpm-ostree[Embedding in a {op-system-ostree} image]
65+
66+
//additional resources for real-time kernel
67+
[role="_additional-resources"]
68+
[id="additional-resources-rtk_{context}"]
69+
.Additional resources
70+
* link:https://docs.redhat.com/en/documentation/red_hat_enterprise_linux_for_real_time/9[Red Hat Enterprise Linux for Real Time 9] (RHEL documentation)
71+
* link:https://osbuild.org/docs/on-premises/installation/managing-repositories/#using-repositories-that-require-subscription[Using repositories that require subscription] (osbuild documentation)
72+
* 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 RHEL images by using the real-time kernel] for more information.
73+
* 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)
74+
* xref:../../microshift_install/microshift-embed-in-rpm-ostree.adoc#microshift-embed-in-rpm-ostree[Embedding in a {op-system-ostree} image]
75+
76+
* link:https://access.redhat.com/solutions/4096521[FAQ about RHEL for Real Time (kernel-rt)]
77+
//Can likely remove KCS after 2024 as it may go out of date
78+
79+
include::modules/microshift-low-latency-prepare-workload.adoc[leveloffset=+1]
80+
81+
//additional resources for preparing the workload
82+
[role="_additional-resources"]
83+
[id="additional-resources-prep-workload_{context}"]
84+
.Additional resources
85+
86+
* link:https://docs.openshift.com/container-platform/4.16/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] (Red Hat OpenShift Container Platform documentation)
87+
88+
* link:https://docs.openshift.com/container-platform/4.16/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] (Red Hat OpenShift Container Platform documentation)
89+
90+
* link:https://docs.openshift.com/container-platform/4.16/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] (Red Hat OpenShift Container Platform documentation)
91+
92+
include::modules/microshift-low-latency-rhel-edge-blueprint-rtk.adoc[leveloffset=+1]
93+
94+
//additional resources for workload partitioning
95+
[role="_additional-resources"]
96+
[id="additional-resources-wp_{context}"]
97+
.Additional resources
98+
* xref:../microshift_low_latency/microshift-workload-partitioning.adoc#microshift-workload-partitioning[Workload partitioning]
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../modules/
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../snippets/

modules/microshift-config-yaml.adoc

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,21 @@
66
[id="microshift-config-yaml_{context}"]
77
= Using a YAML configuration file
88

9-
At start up, {microshift-short} checks the system-wide `/etc/microshift/` directory for a configuration file named `config.yaml`. If the configuration file does not exist in the directory, the built-in default values are used to start the service.
9+
At start up, {microshift-short} checks the system-wide `/etc/microshift/` directory for a configuration file named `config.yaml`. If the configuration file does not exist in the directory, built-in default values are used to start the service.
1010

1111
[id="microshift-yaml-custom_{context}"]
1212
== Custom settings
13-
To create custom configurations, you must create a `config.yaml` file in the `/etc/microshift/` directory, and then change any settings that are expected to override the defaults before starting or restarting {microshift-short}.
13+
To create custom configurations, make a copy of the provided `config.yaml.default` file that is provided in the `/etc/microshift/` directory, renaming it `config.yaml`. Keep this file in the `/etc/microshift/` directory, and then you can change supported settings that are expected to override the defaults before starting or restarting {microshift-short}.
1414

1515
[IMPORTANT]
1616
====
1717
Restart {microshift-short} after changing any configuration settings to have them take effect. The `config.yaml` file is read only when {microshift-short} starts.
1818
====
1919

20+
[id="microshift-yaml-custom-settings_{context}"]
21+
== Separate restarts
22+
Applications and other optional services used with your {microshift-short} cluster might also need to be restarted separately to apply configuration changes throughout the cluster. For example, when making changes to certain networking settings, you must stop and restart service and application pods to apply those changes. See each procedure for the task you are completing for more information.
23+
2024
[TIP]
2125
====
2226
If you add all of the configurations you need at the same time, you can minimize system restarts.
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
// Module included in the following assemblies:
2+
//
3+
// microshift_configuring/microshift_low_latency/microshift-low-latency.adoc
4+
5+
:_mod-docs-content-type: PROCEDURE
6+
[id="microshift-installing-low-latency-rpm-package_{context}"]
7+
= Installing the {microshift-short} low latency RPM package
8+
9+
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.
10+
11+
.Prerequisites
12+
13+
. You installed the {microshift-short} RPM.
14+
. You configured workload partitioning for {microshift-short}.
15+
16+
.Procedure
17+
18+
* Install the low latency RPM package by running the following command:
19+
+
20+
[source,terminal]
21+
----
22+
$ sudo dnf install -y microshift-low-latency
23+
----
24+
+
25+
[TIP]
26+
====
27+
Wait to restart the host until after activating your TuneD profile. Restarting the host restarts {microshift-short} and CRI-O, which applies the low latency manifests and activates the TuneD profile.
28+
====
29+
30+
.Next steps
31+
. Configure the kubelet parameter for low latency in the {microshift-short} `config.yaml`.
32+
. Tune your operating system, for example, configure and activate a TuneD profile.
33+
. Optional: Configure automatic activation of your TuneD profile.
34+
. Optional: If you are using the x86_64 architecture, install {op-system-rt-kernel}.
35+
. Prepare your workloads for low latency.

0 commit comments

Comments
 (0)