Skip to content

Commit 2a53eb7

Browse files
authored
Merge pull request #21801 from ahardin-rh/cnf-stephen
New topic files for CNF.
2 parents 3c1502c + 57e4bfa commit 2a53eb7

File tree

4 files changed

+136
-0
lines changed

4 files changed

+136
-0
lines changed

_topic_map.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1211,6 +1211,9 @@ Topics:
12111211
File: routing-optimization
12121212
- Name: What huge pages do and how they are consumed by apps
12131213
File: what-huge-pages-do-and-how-they-are-consumed-by-apps
1214+
- Name: Performance-addon operator for low latency nodes
1215+
File: cnf-performance-addon-operator-for-low-latency-nodes
1216+
Distros: openshift-webscale
12141217
---
12151218
Name: Backup and restore
12161219
Dir: backup_and_restore
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
// Module included in the following assemblies:
2+
// Epic CNF-78
3+
// * scalability_and_performance/cnf-performance-addon-operator-for-low-latency-nodes.adoc
4+
5+
[id="cnf-creating-the-performance-profile-object_{context}"]
6+
= Creating the PerformanceProfile object
7+
8+
Create the `PerformanceProfile` object using the object that is posted to the cluster.
9+
After you have specified your settings, the `PerformanceProfile` object is compiled into multiple objects:
10+
11+
* A `Machine.Config` file that manipulates the nodes.
12+
* A `KubeletConfig` file that configures the Topology Manager, the CPU Manager, and the {product-title} nodes.
13+
* The Tuned profile that configures the Node Tuning Operator.
14+
15+
.Procedure
16+
17+
. Prepare a cluster.
18+
19+
. Create a Machine ConfigPool.
20+
21+
. Install the Performance Profile Operator.
22+
23+
. Create a performance profile that is appropriate for your hardware and topology.
24+
In the performance profile, you can specify whether to update the kernel to kernel-rt, the CPUs that
25+
will be reserved for housekeeping, and CPUs that will be used for running the workloads.
26+
+
27+
This is a typical performance profile:
28+
+
29+
----
30+
apiversion: performance.openshift.io/v1alpha1
31+
kind: PerformanceProfile
32+
metadata:
33+
name: <unique-name>
34+
spec:
35+
cpu:
36+
isolated: “1-3”
37+
reserved: “0”
38+
hugepages:
39+
defaultHugepagesSize: “1Gi”
40+
pages:
41+
size: “1Gi”
42+
count: 4
43+
node: 0
44+
realTimeKernel:
45+
enabled: true
46+
numa:
47+
topologyPolicy: “best-effort”
48+
----
49+
50+
. Specify two groups of CPUs in the `spec` section:
51+
+
52+
`isolated` - Has the lowest latency. Because processes in this group have no interruptions, there is zero packet loss.
53+
+
54+
`reserved` - The housekeeping CPUs. Threads in the reserved group tend to be very busy, so latency-sensitive
55+
applications should be run in the isolated group.
56+
See link:https://kubernetes.io/docs/tasks/configure-pod-container/quality-service-pod/#create-a-pod-that-gets-assigned-a-qos-class-of-guaranteed[Create a Pod that gets assigned a QoS class of `Guaranteed`].
57+
58+
For example, you can reserve cores (threads) from a single NUMA node and put your workloads on another NUMA node.
59+
The reason for this is that the housekeeping CPUs may be touching caches in the CPU.
60+
Keeping your workloads on a separate NUMA node prevents the nodes from interfering with each other.
61+
Additionally, each NUMA node has its own memory bus that is not shared.
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
// Module included in the following assemblies:
2+
// Epic CNF-78
3+
// * scalability_and_performance/cnf-performance-addon-operator-for-low-latency-nodes.adoc
4+
5+
[id="cnf-understanding-low-latency_{context}"]
6+
= Understanding low latency
7+
8+
The emergence of Edge computing in the area of Telco / 5G plays a key role in
9+
reducing latency and congestion problems and improving application performance.
10+
11+
Simply put, latency determines how fast data (packets) moves from the sender to
12+
receiver and returns to the sender after processing by the receiver. Obviously,
13+
maintaining a network architecture with the lowest possible delay of latency
14+
speeds is key for meeting the network performance requirements of 5G. Compared
15+
to 4G technology, with an average latency of 50ms, 5G is targeted to reach
16+
latency numbers of 1ms or less. This reduction in latency boosts wireless
17+
throughput by a factor of 10.
18+
19+
Many of the deployed applications in the Telco space require low latency that
20+
can only tolerate zero packet loss. Tuning for zero packet loss helps mitigate
21+
the inherent issues that degrade network performance. For more information, see
22+
link:https://www.redhat.com/en/blog/tuning-zero-packet-loss-red-hat-openstack-platform-part-1[Tuning
23+
for Zero Packet Loss in Red Hat OpenStack Platform].
24+
25+
The Edge computing initiative also comes in to play for reducing latency rates.
26+
Think of it as literally being on the edge of the cloud and closer to the user.
27+
This greatly reduces the distance between the user and distant data centers,
28+
resulting in reduced application response times and performance latency.
29+
30+
Administrators must be able to manage their many Edge sites and local services
31+
in a centralized way so that all of the deployments can run at the lowest
32+
possible management cost. They also need an easy way to deploy and configure
33+
certain nodes of their cluster for real-time low latency and high-performance
34+
purposes. Low latency nodes are useful for applications such as Cloud-native
35+
Network Functions (CNF) and Data Plane Development Kit (DPDK).
36+
37+
{product-title} currently provides mechanisms to tune software on an
38+
{product-title} cluster for real-time running and low latency (around <20
39+
microseconds reaction time). This includes tuning the kernel and {product-title}
40+
set values, installing a kernel, and reconfiguring the machine. But this method
41+
requires setting up four different Operators and performing many configurations
42+
that, when done manually, is complex and could be prone to mistakes.
43+
44+
{product-title} 4.4 provides a performance-addon Operator to implement automatic
45+
tuning in order to achieve low latency performance for OpenShift applications.
46+
The cluster administrator uses this performance profile configuration that makes
47+
it easier to make these changes in a more reliable way. The administrator can
48+
specify whether to update the kernel to kernel-rt, the CPUs that will be
49+
reserved for housekeeping, and the CPUs that will be used for running the
50+
workloads.
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
[id="performance-addon-operator-for-low-latency-nodes"]
2+
= Performance-addon operator for low latency nodes
3+
include::modules/common-attributes.adoc[]
4+
:context: cnf-master
5+
6+
toc::[]
7+
8+
include::modules/cnf-understanding-low-latency.adoc[leveloffset=+1]
9+
10+
include::modules/nw-sriov-installing-operator.adoc[leveloffset=+1]
11+
12+
include::modules/configuring-huge-pages.adoc[leveloffset=+1]
13+
14+
include::modules/cnf-creating-the-performance-profile-object.adoc[leveloffset=+1]
15+
16+
.Additional resources
17+
18+
* For more information about Machine Config and KubeletConfig,
19+
see xref:../nodes/nodes/nodes-nodes-managing.adoc#nodes-nodes-managing[Managing nodes].
20+
21+
* For more information about the Node Tuning Operator,
22+
see xref:../scalability_and_performance/using-node-tuning-operator.adoc#using-node-tuning-operator[Using the Node Tuning Operator].

0 commit comments

Comments
 (0)