Skip to content

Commit a6e6923

Browse files
committed
OSDOCS-5543:Adding performance and resource recommendatiaons
1 parent 92c0b33 commit a6e6923

File tree

3 files changed

+55
-1
lines changed

3 files changed

+55
-1
lines changed
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
//module included in the following assemblies:
2+
// * network_observability/configuring_operator.adoc
3+
4+
:_content-type: REFERENCE
5+
[id="network-observability-resource-recommendations_{context}"]
6+
= Resource management and performance considerations
7+
8+
The amount of resources required by Network Observability depends on the size of your cluster and your requirements for the cluster to ingest and store observability data. To manage resources and set performance criteria for your cluster, consider configuring the following settings. Configuring these settings might meet your optimal setup and observability needs.
9+
10+
The following settings can help you manage resources and performance from the outset:
11+
12+
eBPF Sampling:: You can set the Sampling specification, `spec.agent.ebpf.sampling`, to manage resources. Smaller sampling values might consume a large amount of computational, memory and storage resources. You can mitigate this by specifying a sampling ratio value. A value of `100` means 1 flow every 100 is sampled. A value of `0` or `1` means all flows are captured. Smaller values result in an increase in returned flows and the accuracy of derived metrics. By default, eBPF sampling is set to a value of 50, so 1 flow every 50 is sampled. Note that more sampled flows also means more storage needed. Consider starting with the default values and refine empirically, in order to determine which setting your cluster can manage.
13+
14+
Restricting or excluding interfaces:: Reduce the overall observed traffic by setting the values for `spec.agent.ebpf.interfaces` and `spec.agent.ebpf.excludeInterfaces`. By default, the agent fetches all the interfaces in the system, except the ones listed in `excludeInterfaces` and `lo` (local interface). Note that the interface names might vary according to the Container Network Interface (CNI) used.
15+
16+
The following settings can be used to fine-tune performance after the Network Observability has been running for a while:
17+
18+
Resource requirements and limits:: Adapt the resource requirements and limits to the load and memory usage you expect on your cluster by using the `spec.agent.ebpf.resources` and `spec.processor.resources` specifications. The default limits of 800MB might be sufficient for most medium-sized clusters.
19+
20+
Cache max flows timeout:: Control how often flows are reported by the agents by using the eBPF agent's `spec.agent.ebpf.cacheMaxFlows` and `spec.agent.ebpf.cacheActiveTimeout` specifications. A larger value results in less traffic being generated by the agents, which correlates with a lower CPU load. However, a larger value leads to a slightly higher memory consumption, and might generate more latency in the flow collection.
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
// Module included in the following assemblies:
2+
// * network_observability/configuring_operator.adoc
3+
4+
:_content-type: REFERENCE
5+
[id="network-observability-resources-table_{context}"]
6+
= Resource considerations
7+
The following table outlines examples of resource considerations for clusters with certain workload sizes.
8+
9+
[IMPORTANT]
10+
====
11+
The examples outlined in the table demonstrate scenarios that are tailored to specific workloads. Consider each example only as a baseline from which adjustments can be made to accommodate your workload needs.
12+
====
13+
14+
.Resource recommendations
15+
[options="header"]
16+
|===
17+
| | Extra small (10 nodes) | Small (25 nodes) | Medium (65 nodes) ^[2]^ | Large (120 nodes) ^[2]^
18+
| *Worker Node vCPU and memory* | 4 vCPUs\| 16GiB mem ^[1]^ | 16 vCPUs\| 64GiB mem ^[1]^ | 16 vCPUs\| 64GiB mem ^[1]^ |16 vCPUs\| 64GiB Mem ^[1]^
19+
| *LokiStack size* | `1x.extra-small` | `1x.small` | `1x.small` | `1x.medium`
20+
| *Network Observability controller memory limit* | 400Mi (default) | 400Mi (default) | 400Mi (default) | 800Mi
21+
| *eBPF sampling rate* | 50 (default) | 50 (default) | 50 (default) | 50 (default)
22+
| *eBPF memory limit* | 800Mi (default) | 800Mi (default) | 2000Mi | 800Mi (default)
23+
| *FLP memory limit* | 800Mi (default) | 800Mi (default) | 800Mi (default) | 800Mi (default)
24+
| *FLP Kafka partitions* | N/A | 48 | 48 | 48
25+
| *Kafka consumer replicas* | N/A | 24 | 24 | 24
26+
| *Kafka brokers* | N/A | 3 (default) | 3 (default) | 3 (default)
27+
|===
28+
[.small]
29+
--
30+
1. Tested with AWS M6i instances.
31+
2. In addition to this worker and its controller, 3 infra nodes (size `M6i.12xlarge`) and 1 workload node (size `M6i.8xlarge`) were tested.
32+
--

networking/network_observability/configuring-operator.adoc

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,6 @@ You can update the Flow Collector API resource to configure the Network Observab
1111
include::modules/network-observability-flowcollector-view.adoc[leveloffset=+1]
1212
include::modules/network-observability-flowcollector-kafka-config.adoc[leveloffset=+1]
1313
include::modules/network-observability-configuring-FLP-sampling.adoc[leveloffset=+1]
14-
include::modules/network-observability-configuring-quickfilters-flowcollector.adoc[leveloffset=+1]
14+
include::modules/network-observability-configuring-quickfilters-flowcollector.adoc[leveloffset=+1]
15+
include::modules/network-observability-resource-recommendations.adoc[leveloffset=+1]
16+
include::modules/network-observability-resources-table.adoc[leveloffset=+2]

0 commit comments

Comments
 (0)