Core Isolation for Performance Optimization
By default, the CPU cores that work with network ports are also used by
other subsystems. This can degrade performance and cause Input Errors pps/bps
spikes on Port extX/intX graphs. You can take some of the load off these cores
by preventing non-critical subsystems from running on them.
To do so:
-
Specify isolation of the packet processor cores in the core options through the
isolcpus=...andrcu_nocbs=...parameters. It is also recommended to addmitigations=offto disable core security patches. -
Add these parameters to
.env:DATA_PLANE_CPUSโ list of cores allocated for packet processing (dataplane);CONTROL_PLANE_CPUSโ list of cores allocated for other subsystems (all other cores).
-
Download
docker-compose.cpuisol.yml, that appliescpusetoption to all subsystems: -
Add it to the
COMPOSE_FILElist in.env:
Example
- Server with two CPUs of 10 physical cores with HyperThreading โ a total of 40 logical cores:
- All cores, except for one, from each CPU are allocated for the dataplane, including HT-pairs:
- The remaining cores are given to the rest of the subsystems:
grub settings:
.env settings:
More about cpuset parameter
Related Content
- Packet Processor Settings
- System Setup for Mellanox (NVIDIA) Adapters
- Access to the Grafana Interface
- Configuration Change
- Configuring Tiered Protection with MITIGATOR
- Graphite on a Separate Server
- Incident Chart Update Period
- MITIGATOR Installation
- Performance Optimization for AMD Platforms
- Pgfailover Documentation