A collection of the best methods, practices, and configuration values known for delivering the best possible performance in a consistent and predictable way for the workloads built on the librpma library.
The Performance - Tuning aims to collect all tested and proven procedures with known beneficial effects on the performance of the workloads built on the librpma library. Nonetheless, each change of configuration should be set up and tested in a testing environment before being applied to a production system. Backing up all data and configuration settings prior to tuning is also recommended.
Disabling intel_pstate
is recommended for latency sensitive workloads. [2.1]
To disable intel_pstate
CPU driver edit your /etc/default/grub
and add the following to the kernel command line:
GRUB_CMDLINE_LINUX_DEFAULT="intel_pstate=disable"
Rebuild the grub.cfg file as follows (make sure you use the path adjusted to your OS):
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
sudo grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
This change requires a reboot to take effect.
Set the most performant scaling governor:
sudo cpupower frequency-set --governor performance
List available frequencies and pick the biggest one.
cpupower frequency-info | grep steps
available frequency steps: 2.30 GHz, 2.30 GHz, 2.20 GHz, 2.10 GHz, 2.00 GHz, 1.90 GHz, 1.80 GHz, 1.70 GHz, 1.60 GHz, 1.50 GHz, 1.40 GHz, 1.30 GHz, 1.20 GHz, 1.10 GHz, 1000 MHz
Set the frequency range to the single biggest available value:
FREQ=2.3Ghz
sudo cpupower frequency-set --min $FREQ
sudo cpupower frequency-set --max $FREQ
Width - provide for the RNIC the maximum number of PCIe lanes it is capable of using
Speed - attach the RNIC to PCIe interface of maximum supported speed
Max Payload Size - learn what the Max Payload Size for your system is and adjust expectations accordingly
Max Read Request - configure the maximum available read request value
Knowing all of these attributes allows calculating the RNIC bandwidth limitation. For details please see “Understanding PCIe Configuration for Maximum Performance” Chapter “Calculating PCIe Limitations”.
List supported link modes:
$ ethtool ens785f0
Settings for ens785f0:
Supported ports: [ Backplane ]
Supported link modes: 1000baseKX/Full
# ...
100000baseKR4/Full
100000baseSR4/Full
100000baseCR4/Full
100000baseLR4_ER4/Full
# ...
Set the maximum available value:
$ sudo ethtool -s ens785f0 speed 100000 autoneg off
Set MTU to the maximum recommended value. In most cases, it is 4200.
$ ifconfig ens785f0 mtu 4200
In order to learn how to run the individual workloads, please visit: https://github.com/pmem/rpma/master/tools/perf/BENCHMARKING.md
Performance varies by use, configuration and other factors.
No product or component can be absolutely secure.
Your costs and results may vary.
Intel technologies may require enabled hardware, software or service activation.
Intel disclaims all express and implied warranties, including without limitation, the implied warranties of merchantability, fitness for a particular purpose, and non-infringement, as well as any warranty arising from course of performance, course of dealing, or usage in trade.