srsRAN gNB Performance Tuning
Note
This tutorial does not cover machine-specific configuration steps (e.g., BIOS settings) or the installation and fine-tuning of real-time Linux kernels.
Introduction
This tutorial provides a step-by-step guide to tuning a Linux-based machine for maximizing the performance of the srsRAN CU/DU. While optimal performance of the srsRAN gNB may require additional machine-specific fine-tuning, the recommendations outlined here are designed to meet the needs of most users.
TuneD
The approach to performance tuning outlined here utilizes TuneD, a system tuning service for Linux that uses udev
to monitor connected devices and
dynamically adjust system settings according to user-definable profiles. TuneD provides both static and adaptive tuning capabilities, allowing users to optimize
the performance of the system for specific workloads or environments. For that, the user-definable profiles, amongst others, can include GRUB
command-line arguments, CPU tuning parameters and sysf-exposed kernel parameters (e.g. kobject
).
Installation
The TuneD tool can be installed with the following commands:
sudo apt install tuned
sudo ln -s /boot/grub/grub.cfg /etc/grub2.cfg
Once installed, edit /etc/grub.d/00_tuned
and add the following line at the end of the file:
echo "export tuned_params"
srsRAN tuning profile
Custom profiles can be created to optimize the system performance according to user-specific requirements. It is advised to base those on
pre-existing real-time profiles (e.g., /usr/lib/tuned/realtime/tuned.conf
). As part of this tutorial you can download a custom srsRAN tuning profile,
aimed at optimizing the gNB performance:
To use the srsRAN tuning profile we recommend creating a new folder inside /usr/lib/tuned/
and copying both files above to it
(e.g., /usr/lib/tuned/srs/
). We also recommend users open the tuning profile and inspect its contents, as extensive in-line comments have been
added to explain the selected choices. Once the files are copied, please make sure that the script is executable:
echo "sudo chmod +x /usr/lib/tuned/srs/startup.sh"
Before activating the srsRAN tuning profile you need to make sure that (in case it is installed) the power-profiles-daemon
is disabled:
sudo systemctl stop power-profiles-daemon.service
sudo systemctl disable power-profiles-daemon.service
The srsRAN tuning profile can be activated with the following command:
sudo tuned-adm profile srs
The current active tuning profile can be checked at /etc/tuned/active_profile
or with the following command:
tuned-adm active
We recommend configuring the TuneD service to automatically start at system startup. You can do this with the following command:
sudo systemctl enable tuned.service
Finally, the machine must be rebooted in order for the modified GRUB
arguments to be applied.