Home > Storage > PowerScale (Isilon) > Industry Solutions and Verticals > Media and Entertainment > Dell Technologies PowerScale: OneFS Best Practices for DaVinci Resolve > Linux settings
Linux was the original operating system supported by Resolve and remains the preference for truly high-performance workloads.
These settings were tested with CentOS and Rocky Linux 8.4.
RDMA vs TCP
NFS is the preferred network communication protocol for Linux systems connecting to PowerScale storage. PowerScale supports NFS over RDMA. RDMA offers higher bandwidth communication, lower latency, and decreased CPU load on both the workstation and the PowerScale storage. However, RDMA has network requirements such as flow control that not all organizations can support on their production networks. So, if an organization can support RDMA for NFS traffic, it is recommended. However, excellent results can also be obtained with NFS over TCP, as will be described below.
Suggested NFS mount options for RDMA:
nfsvers=3,proto=rdma,port=20049,rw,rsize=1048576,wsize=1048576,timeo=600,soft
A full discussion of RDMA is out of the scope of this document. But this topic is discussed in detail here: NFS over RDMA for Media Workflows
Suggested NFS mount options for TCP
nfsvers=3,rw,nconnect=4,rsize=1048576,wsize=1048576,timeo=600,soft
Most options will be familiar to Linux administrators, except perhaps nconnect. The nconnect mount option was introduced in Linux kernels >= 5.4 and has been backported to 4.x Linux kernels in some distributions (such as CentOS and Rocky). This mount option allows for multiple TCP sockets to be opened between the client and storage server and is key to getting maximum performance with NFS over TCP.
Increasing nconnect all the way to 16 may have diminishing returns. Typically, an nconnect value of 4 or 8 is adequate to support uncompressed 4K workflows. However, increasing nconnect to be equal or half the Resolve threads has been shown to be helpful in supporting 8K workflows. For example, if Resolve is set to use 8 threads, an nconnect value of 4 would be appropriate. If Resolve is set to use 12 threads, setting nconnect to 6 makes sense. As always, experimentation is key with this sort of advanced tuning.
Sysctl tuning
The sysctl command can be used to change Linux kernel settings on a running system, however these changes will not persist across reboots. In order for the changes to persist across reboots, the following file needs to be created: /etc/sysctl.d/01-custom.conf
The following entries into this file have been found to positively impact DaVinci Resolve performance when using PowerScale storage:
#default net.core.rmem_default = 212992
#default net.core.rmem_max = 212992
#default net.ipv4.tcp_rmem = 4096 87380 6291456
net.core.rmem_max=16777216
net.core.rmem_default=212992
net.ipv4.tcp_rmem=16384 349520 16777216
#
#default net.core.wmem_default = 212992
#default net.core.wmem_max = 212992
#default net.ipv4.tcp_wmem = 4096 16384 4194304
#
net.core.wmem_max=16777216
net.core.wmem_default=212992
net.ipv4.tcp_wmem=16384 349520 16777216
#
#default vm.dirty_ratio = 10
vm.dirty_ratio=40
Notice that the defaults are commented out but left in for reference. A full discussion of each setting is out of the scope of this document. These settings were arrived at with a beefy workstation running 100 GbE networking. As always, experimentation is key. At a high level:
Other general recommendations for Linux based Resolve workstations are to disable SELinux and to disable the software filewall.
SELinux can be disabled by editing the configuration file located:
/etc/selinux/config
Disabling the software filewall is achieved with the following commands:
systemctl disable filrewalld