Chapter 1. Installing RHEL for real time
Many industries and organizations need performance computing and might require low and predictable latency, especially in the financial and telecommunications industries. Latency, or response time, is defined as the time between an event and system response and is generally measured in microseconds (μs).
For most applications running under a Linux environment, basic performance tuning can improve latency sufficiently. For those industries where latency not only needs to be low, but also accountable and predictable, Red Hat developed a 'drop-in' kernel replacement that provides this. RHEL for Real Time is distributed as part of RHEL 10 and provides seamless integration with RHEL 10 for Real Time offers clients the opportunity to measure, configure, and record latency times within their organization.
Before installing RHEL for Real Time, ensure that the base platform is properly tuned and the system firmware parameters are adjusted. Failure to perform these tasks might prevent getting consistent performance from a RHEL Real Time deployment.
The RHEL for Real Time kernel (kernel-rt) on 64-bit ARM (aarch64) is available as a Technology Preview. Technology Preview features are not supported with Red Hat production service level agreements (SLAs) and might not be functionally complete. Red Hat does not recommend using them in production. These features provide early access to upcoming product features, enabling customers to test functionality and provide feedback during the development process.
For more information, see Technology Preview features - Kernel in the RHEL 10.1 Release Notes.
For more information about the support scope of Red Hat Technology Preview features, see Technology Preview Features Support Scope.
1.1. RHEL for Real Time for optimizing latency Copy linkLink copied to clipboard!
RHEL for Real Time is designed to be used on well-tuned systems for applications with extremely high determinism requirements. The kernel offers the vast majority of the improvement in determinism.
For example, in many workloads, thorough system tuning improves consistency of results to a optimum percentage. This is why, before using RHEL for Real Time, we recommend that customers first perform system tuning of standard RHEL to see if it meets their objectives.
System tuning is just as important when using the Real Time kernel as it is for the standard kernel. Installing the Real-time kernel on an untuned system is not likely to result in any noticeable benefit. Tuning the standard kernel helps achieving good latency numbers, though not consistently. The Real Time kernel provides the required latency reduction, determinism, and consistency.
Before tuning Real Time kernel systems, ensure that the base platform is properly tuned and the system firmware parameters are adjusted. Failure to perform these tasks might prevent getting consistent performance from a RHEL Real-time deployment.
The objective of the Real-time kernel is to provide consistent, low-latency and determinism, offering predictable response times. The real time kernel requires additional processing resources. To provide the environment for reduced latency and ensure that the highest priority task in the system receives more processing time, extra infrastructure was required which increases resource usage. This increased resource usage might result in some degradation in overall throughput. The exact amount is very workload dependent, ranging from 0% to 30%.
For typical workloads with kernel latency requirements in the millisecond (ms) range, the standard RHEL kernel is sufficient. However,if your workload has stringent low-latency determinism requirements for core kernel features such as interrupt handling and process scheduling in the microsecond (μs) range, then the Real Time kernel is for you.
1.2. Installing RHEL for Real Time using dnf Copy linkLink copied to clipboard!
In addition to installing the real-time kernel with dnf, you can download it along with all other downloadable components of Red Hat Enterprise Linux from the Download Red Hat Enterprise Linux portal. Select the appropriate version from the Version menu.
Prerequisites
- The latest version of RHEL 10 is installed on an AMD64 or Intel64 system. The real-time kernel runs on AMD64 and Intel 64 (also known as x86_64) server platforms that are certified to run Red Hat Enterprise Linux.
- Your machine is registered and RHEL is attached to a RHEL for Real Time subscription.
Ensure that the base platform is properly tuned and the system firmware parameters are adjusted.
WarningFailure to perform the prerequisite tasks before installing the real-time kernel might prevent a consistent performance from a RHEL for Real Time kernel deployment.
Procedure
Enable the RHEL for Real Time repository.
# subscription-manager repos --enable rhel-10-for-x86_64-rt-rpmsNoteIf you are using an Extended Update Support (EUS) subscription, enable the RHEL for Real Time EUS repository instead:
# subscription-manager repos --enable rhel-10-for-x86_64-rt-eus-rpmsFor more information about EUS, see Red Hat Enterprise Linux Life Cycle.
Install the RHEL for Real Time package group.
# dnf groupinstall RTThis group installs several packages:
-
kernel-rtincludes meta-package that carries the list of package dependencies to have a functional kernel-rt installed.. -
kernel-rt-coreincludes the core RHEL for Real Time kernel package. -
kernel-rt-develincludes the proper kernel binary, compiled withPREEMPT_RTenabled, the package also contains configuration and scripts to drive the kernel installation. -
kernel-rt-modules-coreincludes the essential kernel modules required for a functional kernel. kernel-rt-modules provides commonly used kernel modules, a complement to kernel-modules-core. -
kernel-rt-modules-extraincludes the RHEL for Real Time kernel extra modules package. -
realtime-setupsets up the basic environment required by RHEL for Real Time. -
rtevalevaluates system suitability for RHEL for Real Time. -
rteval-loadsprovides source code forrtevalloads. -
tuned-profiles-realtimeincludes the additionalTuneDprofiles targeted to real-time.
-
Optional: Additionally, the
tunapackage contains a tool that helps tune the real-time kernel workload, greatly automating CPU isolation and thread affinity operations from the command line or the GUI. This package is available in the base RHEL 10 repository.# dnf install tunaNoteWhen the RHEL for Real Time kernel is installed, it is automatically set to be the default kernel and is used on the next boot. You can also configure other existing kernels variants, such as,
kernel,kernel-debug, orkernel-rt-debugas the default boot kernel. For more information, see Configuring kernel-rt as the default boot kernel.
Verification
Check the installation location and verify that the components have been installed successfully.
# rpm -ql realtime-setup /etc/security/limits.d/realtime.conf /etc/sysconfig/realtime-setup /etc/udev/rules.d/99-rhel-rt.rules /usr/bin/realtime-setup /usr/bin/rt-setup-kdump /usr/bin/slub_cpu_partial_off /usr/lib/.build-id /usr/lib/.build-id/a4 /usr/lib/.build-id/a4/da77908aa4c6f048939f3267f1c552c456d117 /usr/lib/systemd/system/rt-entsk.service /usr/lib/systemd/system/rt-setup.service /usr/sbin/kernel-is-rt /usr/sbin/rt-entsk
1.3. Available RPM packages in the RHEL for Real Time repository Copy linkLink copied to clipboard!
The RHEL for Real Time repository provides RPM packages including the kernel-rt package, kernel test packages for real-time development and debugging, and debuginfo packages for code tracing.
The repository includes the following packages:
-
kernel-rtpackage, which is the RHEL for Real Time kernel package. - RHEL for Real Time kernel test packages, which contains test programs for the real-time kernel.
- RHEL for Real Time debuginfo packages, which are for debugging and code tracing.
| RPM package name | Description | RT-specific | Required |
|---|---|---|---|
|
| Low latency and preemption functionality | Yes | Yes |
| RPM package name | Description | RT-specific | Required |
|---|---|---|---|
|
| Headers and libraries for kernel development | Yes | No |
|
| RHEL for Real Time kernel with debugging functions compiled in (slow) | Yes | No |
|
| Headers and libraries for development on debug kernel | Yes | No |
|
| Utilities for measuring system latencies and for proving that priority-inheritance mutex functions properly | No | No |
The debuginfo packages are provided to use with the perf, trace-cmd, and crash utilities for analyzing kernel crash dumps. The debuginfo packages include symbol tables and are quite large. For this reason, the debuginfo packages are separately delivered from the other RHEL for Real Time packages. You can download the debugging packages with RHEL-RT as part of the RHEL offer.
| RPM package name | Description | RT-specific | Required |
|---|---|---|---|
|
|
Symbols for profiling and debugging use, such as | Yes | No |
|
| Symbols for profiling and tracing | Yes | No |
1.4. Post installation instructions Copy linkLink copied to clipboard!
After you install the real-time kernel, perform system tuning with the provided tuned profiles, configure kdump for crash dump information, and verify that the Real Time kernel is the default kernel.
After installing the real-time kernel, ensure the following:
- To achieve optimal low-latency determinism, perform RHEL for Real Time specific system tuning by using the provided tuned profiles, either as the final tuning or as the canvas for the specific tuning required for your system.
- Review the module compatibility information for the real-time kernel and the standard kernel.
-
To enable
kdump, configure RHEL for Real Time to provide crash dump information by enablingkexec/kdump. - Verify that the Real Time kernel is the default kernel.
1.4.1. Module compatibility of the real-time kernel and the standard kernel Copy linkLink copied to clipboard!
Kernel modules are inherently specific to the kernel they are built for. The RHEL for real-time and RHEL have a common code base, though RHEL for real-time has the real time features and capabilities enabled. As a consequence, modules need to be rebuilt to be used with RHEL for real-time.
If you must use a third-party module, you must recompile it with the RHEL for Real Time header files, which are available in the RHEL for Real Time development and test packages.
The third-party drivers for the standard Red Hat Enterprise Linux 10 but do not currently have a custom build for RHEL for Real Time are:
- EMC Powerpath
- NVIDIA graphics
- Advanced storage adapter configuration utilities from Qlogic
Userspace tools built for Red Hat Enterprise Linux 10 for the stock kernel are fully compatible with RHEL for real-time. Some applications, due to the way they were designed, might behave in a way that does not favor the real time optimizations one would expect to experiment