:_mod-docs-content-type: ASSEMBLY
[id="microshift-low-latency"]
= Configuring low latency
include::_attributes/attributes-microshift.adoc[]
:context: microshift-low-latency

toc::[]

[role="_abstract"]
You can configure and tune low latency capabilities to improve application performance on edge devices.

include::modules/microshift-low-latency-concept.adoc[leveloffset=+1]

//additional resources for the low latency concept
[role="_additional-resources"]
.Additional resources
* link:https://docs.redhat.com/en/documentation/openshift_container_platform/{ocp-version}/html/scalability_and_performance/cnf-understanding-low-latency#cnf-understanding-low-latency_cnf-understanding-low-latency[About low latency ({OCP} documentation)]

include::modules/microshift-install-rpms-low-latency.adoc[leveloffset=+1]

include::modules/microshift-low-latency-config-yaml.adoc[leveloffset=+1]

//additional resources for the config.yaml
[role="_additional-resources"]
.Additional resources
* xref:../../microshift_configuring/microshift-using-config-yaml.adoc#microshift-using-config-yaml[Customizing {microshift-short} by using the configuration file]
* link:https://kubernetes.io/docs/reference/config-api/kubelet-config.v1beta1/#kubelet-config-k8s-io-v1beta1-KubeletConfiguration[KubeletConfiguration reference (Kubernetes upstream documentation)]

include::modules/microshift-low-latency-llc.adoc[leveloffset=+1]

//additional resources for LLC locality
[role="_additional-resources"]
.Additional resources
* link:https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/#static-policy-options[Control CPU Management Policies on the Node - Static policy options (Kubernetes documentation)]
* xref:../../microshift_configuring/microshift_low_latency/microshift-low-latency.adoc#microshift-low-latency-config-yaml_microshift-low-latency[Configuration kubelet parameters and values in {microshift-short}]
* xref:../../microshift_configuring/microshift-feature-gates.adoc#microshift-feature-gates-using_microshift-feature-gates[Using feature gates for {microshift-short}]

//RHEL TuneD
include::modules/microshift-low-latency-tuned-conc.adoc[leveloffset=+1]

//microshift-baseline is the name of the profile and used for automatic activation settings
//microshift-baseline-variables.conf is the file for user tweaks
include::modules/microshift-low-latency-tuned-profile.adoc[leveloffset=+2]

//additional resources for tuned profiles
[role="_additional-resources"]
[id="additional-resources-tuned-profile_{context}"]
.Additional resources
* 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)]
* link:https://www.redhat.com/sysadmin/linux-tuned-tuning-profiles[How to manage tuning profiles in Linux (Red Hat blog)]

//microshift-baseline is the name of the profile and used for automatic activation settings
include::modules/microshift-low-latency-tuned-auto.adoc[leveloffset=+2]

//additional resources for tuned profiles automatic activation
[role="_additional-resources"]
[id="additional-resources-tuned-auto_{context}"]
.Additional resources
* xref:../../microshift_install_get_ready/microshift-greenboot.adoc#greenboot-directories-details_microshift-greenboot[Greenboot directories details]

//RHEL real-time kernel
include::modules/microshift-low-latency-kernelrt-conc.adoc[leveloffset=+1]

include::modules/microshift-low-latency-install-kernelrt-rpm.adoc[leveloffset=+2]

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

[id="microshift-low-latency-install-kernelrt-rhel-edge-buildimage_{context}"]
== Building the {op-system-ostree-first} image with the real-time kernel

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:

* 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]

//additional resources for real-time kernel
[role="_additional-resources"]
[id="additional-resources-rtk_{context}"]
.Additional resources
* 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)]
* link:https://osbuild.org/docs/on-premises/installation/managing-repositories/#using-repositories-that-require-subscription[Using repositories that require subscription (osbuild documentation)]
* 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}]
* 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)]
* xref:../../microshift_install_rpm_ostree/microshift-embed-in-rpm-ostree.adoc#microshift-embed-in-rpm-ostree[Embedding in a {op-system-ostree} image]

include::modules/microshift-low-latency-prepare-workload.adoc[leveloffset=+1]

//additional resources for preparing the workload
[role="_additional-resources"]
[id="additional-resources-prep-workload_{context}"]
.Additional resources

* 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)]

* 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)]

* 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)]

include::modules/microshift-low-latency-rhel-edge-blueprint-rtk.adoc[leveloffset=+1]

//additional resources for workload partitioning
[role="_additional-resources"]
[id="additional-resources-wp_{context}"]
.Additional resources
* xref:../microshift_low_latency/microshift-workload-partitioning.adoc#microshift-workload-partitioning[Workload partitioning]
