Best practices for masters and relays deployed on Linux
The most common cause for deteriorated performance (with frequent crash) of masters and relays on Linux is because the default values set for descriptors are very low. The following configuration checks help you improve the performance (and avoid crashes) of masters and relays on a Linux platform:
Before you begin
Ensure that you have applied the Linux OS updates.
Common OS updates are often applied with the following command lines:
- RHEL: $ sudo yum update
- Debian/Ubuntu: $ sudo apt-get update && sudo apt-get dist-upgrade
As of 12.9, it is not mandatory to have all the latest updates. The fontconfig is important. For more information, see this Knowledge Article (KA): Client Management: Graphs are not generated in reports.
To improve the performance of masters and relays on a Linux platform
Use Tuned to improve the performance. Tuned is a profile-based system tuning tool that uses the udev device manager to monitor connected devices and enables both static and dynamic tuning of system settings. Tuned is also available for Debian and Ubuntu distributions and it drastically improves the performance.
tuned-admcommand requires the tuned package (if not already installed). To install the package, run the following command.
# yum install -y tuned
A tuning profile consists of a list of system changes corresponding to a specific requirement. To get the list of the available tuning profiles, run the following command.
# tuned-adm list
The following profiles are available:
- latency-performance - network-latency - network-throughput - powersave - throughput-performance - virtual-guest
The throughput performance profile disables tuned and ktune power saving mechanisms, enables sysctl settings that improve the throughput performance of your disk and network I/O, and switches to the deadline scheduler. The CPU governor is set to the performance mode.
network-throughput is the the recommended profile. It includes the throughput-performance profile and increases network stack buffer sizes.
To create a custom tuned profile for BCM, create the bcm-performance directory at /etc/tuned and run the following command.
# mkdir /etc/tuned/bcm-performance
Create the tuned.conf file at the bcm-performance directory and use throughput-performance as the basis and add additional tuning requirements.
# vi /etc/tuned/bcm-performance/tuned.conf
Paste the following lines in the tuned.conf file.
[main] include=network-throughput [sysctl] fs.file-max = 209708 net.ipv4.tcp_max_syn_backlog = 5000 net.ipv4.tcp_tw_recycle = 0
Save the file (:wq) and run the following command to validate the changes and then enable the new profile.
# tuned-adm profile bcm-performance
Restart the tuned service:
# systemctl restart tuned
To check new configuration, check the /var/log/tuned/tuned.log file.
After a successful deployment of this profile, you need to set Linux ulimit settings.
Configure the maximum number of open files.
Tuned does not set Linux ulimit settings, the default limits are almost always too low. In most cases, a limit of 64,000 max user processes and 64,000 open files (both have defaults of 1024) suffice. You can deploy these limits by adding them in /etc/security/limits.conf.
# vi /etc/security/ limits.conf root soft nproc 64000 root hard nproc 64000 root soft nofile 64000 root hard nofile 64000
Save the file (:wq), reboot the device and run the following commands to validate the changes:
ulimit -Hn ulimit -Sn
The value returned for each command must be 64000.
Edit both /etc/systemd/system.conf and /etc/systemd/user.conf in order to add the following line under the [Manager] section:
Save the files (:wq).
Filesystem type and mount options: We recommend using dedicated disk for BCM master and relay and the EXT4 filesystem with option
nodiratime barrier=0or XFS filesystem with option
noatime. This needs to be done manually in /etc/fstab. You have to set the recommended values at least on the partition where the master or the relay is installed.
Example for ext4:
# vi /etc/fstab UUID=c49aabe6-8889-4f27-98e7-c155edaaf6ed / ext4 noatime, nodiratime barrier=0 1 2
Example for XFS:
# vi /etc/fstab UUID=c49aabe6-8889-4f27-98e7-c155edaaf6ed / xfs noatime 1 2
For performance reasons in a WAN environment, set the following parameters for a master or a relay and clients.
mtxagent.ini set: DefaultTimeout=30 DefaultConnectTimeout=30 ConnectionQueueMaxSize=50 TunnelTimeout=120
If you have any questions, please contact BMC customer support.