Skip to content

Commit 0b25def

Browse files
authored
Merge pull request #46293 from tmulquee/TELCODOCS-416
TELCODOCS-416: CNF-3205 Telco friendly workload specific PerformanceProfile API WIP
2 parents 7d03168 + 0b54bf7 commit 0b25def

6 files changed

+114
-8
lines changed
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
// Module included in the following assemblies:
2+
//
3+
// scalability_and_performance/cnf-performance-addon-operator-for-low-latency-nodes.adoc
4+
5+
:_content-type: CONCEPT
6+
[id="configuring-workload-hints_{context}"]
7+
= Configuring workload hints manually
8+
9+
.Procedure
10+
11+
. Create a `PerformanceProfile` appropriate for the environment's hardware and topology as described in the table in "Understanding workload hints". Adjust the profile to match the expected workload. In this example, we tune for the lowest possible latency.
12+
13+
. Add the `highPowerConsumption` and `realtime` workload hints. Both are set to `true` here.
14+
+
15+
[source,yaml]
16+
----
17+
apiVersion: performance.openshift.io/v2
18+
kind: PerformanceProfile
19+
metadata:
20+
name: workload-hints
21+
spec:
22+
...
23+
workloadHints:
24+
highPowerConsumption: true <1>
25+
realtime: true <2>
26+
----
27+
<1> If `highPowerConsumption` is `true`, the node is tuned for very low latency at the cost of increased power consumption.
28+
<2> Disables some debugging and monitoring features that can affect system latency.

modules/cnf-performance-profile-creator-arguments.adoc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,9 @@ a|The power consumption mode.
5252

5353
Possible values:
5454

55-
* `default`
56-
* `low-latency`
57-
* `ultra-low-latency`
55+
* `default`: CPU partitioning with enabled power management and basic low-latency.
56+
* `low-latency`: Enhanced measures to improve latency figures.
57+
* `ultra-low-latency`: Priority given to optimal latency, at the expense of power management.
5858

5959
Default: `default`.
6060

modules/cnf-running-the-performance-creator-profile.adoc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,9 @@ spec:
155155
topologyPolicy: single-numa-node
156156
realTimeKernel:
157157
enabled: true
158+
workloadHints:
159+
highPowerConsumption: true
160+
realtime: true
158161
----
159162

160163
. Apply the generated profile:

modules/cnf-understanding-low-latency.adoc

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,22 @@ set values, installing a kernel, and reconfiguring the machine. But this method
4242
requires setting up four different Operators and performing many configurations
4343
that, when done manually, is complex and could be prone to mistakes.
4444

45-
{product-title} provides a Performance Addon Operator to implement automatic
45+
{product-title} uses the Node Tuning Operator to implement automatic
4646
tuning to achieve low latency performance for OpenShift applications.
4747
The cluster administrator uses this performance profile configuration that makes
4848
it easier to make these changes in a more reliable way. The administrator can
4949
specify whether to update the kernel to kernel-rt, reserve CPUs for cluster and operating system housekeeping duties, including pod infra containers, and isolate CPUs for application containers to run the workloads.
50+
51+
{product-title} also supports workload hints for the Node Tuning Operator that can tune the `PerformanceProfile` to meet the demands of different industry environments. Workload hints are available for `highPowerConsumption` (very low latency at the cost of increased power consumption) and `realtime` (priority given to optimum latency). A combination of `true/false` settings for these hints can be used to deal with application-specific workload profiles and requirements.
52+
53+
Workload hints simplify the fine-tuning of performance to industry sector settings. Instead of a “one size fits all” approach, workload hints can cater to usage patterns such as placing priority on:
54+
55+
* Low latency
56+
* Real-time capability
57+
* Efficient use of power
58+
59+
In an ideal world, all of those would be prioritized: in real life, some come at the expense of others. The Node Tuning Operator is now aware of the workload expectations and better able to meet the demands of the workload. The cluster admin can now specify into which use case that workload falls. The Node Tuning Operator uses the `PerformanceProfile` to fine tune the performance settings for the workload.
60+
61+
The environment in which an application is operating influences its behavior. For a typical data center with no strict latency requirements, only minimal default tuning is needed that enables CPU partitioning for some high performance workload pods.
62+
For data centers and workloads where latency is a higher priority, measures are still taken to optimize power consumption.
63+
The most complicated cases are clusters close to latency-sensitive equipment such as manufacturing machinery and software-defined radios. This last class of deployment is often referred to as Far edge. For Far edge deployments, ultra-low latency is the ultimate priority, and is achieved at the expense of power management.
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
// Module included in the following assemblies:
2+
//
3+
// scalability_and_performance/cnf-performance-addon-operator-for-low-latency-nodes.adoc
4+
5+
:_content-type: CONCEPT
6+
[id="cnf-understanding-workload-hints_{context}"]
7+
= Understanding workload hints
8+
9+
The following table describes how combinations of power consumption and real-time settings impact on latency.
10+
[NOTE]
11+
====
12+
The following workload hints can be configured manually. See "Creating a performance profile" for further information. You can also work with workload hints using the Performance Profile Creator. See "Creating a performance profile" for further information.
13+
====
14+
15+
[cols="1,1,1,1",options="header"]
16+
|===
17+
| Performance Profile creator setting| Hint | Environment | Description
18+
19+
| Default
20+
a|[source,terminal]
21+
----
22+
workloadHints:
23+
highPowerConsumption: false
24+
realtime: false
25+
----
26+
| High throughput cluster without latency requirements
27+
| Performance achieved through CPU partitioning only.
28+
29+
30+
31+
| Low-latency
32+
a|[source,terminal]
33+
----
34+
workloadHints:
35+
highPowerConsumption: false
36+
realtime: true
37+
----
38+
| Regional datacenters
39+
| Both energy savings and low-latency are desirable: compromise between power management, latency and throughput.
40+
41+
42+
| Ultra-low-latency
43+
a|[source,terminal]
44+
----
45+
workloadHints:
46+
highPowerConsumption: true
47+
realtime: true
48+
----
49+
| Far edge clusters, latency critical workloads
50+
| Optimized for absolute minimal latency and maximum determinism at the cost of increased power consumption.
51+
52+
|===

scalability_and_performance/cnf-performance-addon-operator-for-low-latency-nodes.adoc

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,6 @@ include::modules/cnf-managing-device-interrupt-processing-for-guaranteed-pod-iso
2525

2626
include::modules/cnf-use-device-interrupt-processing-for-isolated-cpus.adoc[leveloffset=+2]
2727

28-
include::modules/cnf-configure_for_irq_dynamic_load_balancing.adoc[leveloffset=+2]
29-
30-
include::modules/configuring_hyperthreading_for_a_cluster.adoc[leveloffset=+2]
31-
3228
include::modules/cnf-tuning-nodes-for-low-latency-via-performanceprofile.adoc[leveloffset=+1]
3329

3430
[role="_additional-resources"]
@@ -40,6 +36,19 @@ include::modules/cnf-configuring-huge-pages.adoc[leveloffset=+2]
4036

4137
include::modules/cnf-allocating-multiple-huge-page-sizes.adoc[leveloffset=+2]
4238

39+
include::modules/cnf-configure_for_irq_dynamic_load_balancing.adoc[leveloffset=+2]
40+
41+
include::modules/configuring_hyperthreading_for_a_cluster.adoc[leveloffset=+2]
42+
43+
include::modules/cnf-understanding-workload-hints.adoc[leveloffset=+2]
44+
45+
include::modules/cnf-configuring-workload-hints.adoc[leveloffset=+2]
46+
47+
[role="_additional-resources"]
48+
.Additional resources
49+
50+
* For information on using the Performance Profile Creator (PPC) to generate a performance profile, see xref:../scalability_and_performance/cnf-create-performance-profiles.adoc#cnf-create-performance-profiles[Creating a performance profile].
51+
4352
include::modules/cnf-cpu-infra-container.adoc[leveloffset=+2]
4453

4554
[role="_additional-resources"]

0 commit comments

Comments
 (0)