Skip to main content

Optimizing performance

The Performance and Scalability Configuration section in the Fusion File Share manual covers performance configuration options in-depth.

  1. In the global section, apply the following options.
sess_open_files_max = 1048576
open_files_max = 1048576
connections_max = 1048576
  1. For transport threads, this value is determined by the number of TCP connections Fusion needs to handle. Assuming your Windows clients have RSS-capable NICs, then the value would be 4 (default RSS) multiplied by the number of adapters (per client) and multiplied by the number of clients. This of course assumes RSS is set to the default of 4 (it can be changed by Set-SMBClientConfiguration-ConnectionCountPerRssNetworkInterface). For example, if you have four Windows clients with two adapters on each client then: **(4_RSS2_adapters)4_clients=32 So, in the global section:
  • transport_rx_threads = (RSS value, e.g. 4 * number of adapters per client) * number of concurrently connected clients
  • transport_tx_threads = (RSS value, e.g. 4 * number of adapters per client) * number of concurrently connected clients
  1. For vfs threads, it is best to first benchmark IO on the local filesystem of your instance since Fusion cannot give more throughput than the underlying storage/filesystem. Then start with vfs_metadata_threads and vfs_data_threads equal to the number of cores and increase by a factor of 2 until you reach the maximum level of IOPS that your storage can provide for the specific workload being tested from the Windows client. So, in the global section:
  • vfs_metadata_threads = number of cores and increase by a factor of 2 until maximum IOPS is reached
  • vfs_data_threads = number of cores and increase by a factor of 2 until maximum IOPS is reached
  1. And finally, you can look in the Fusion logs (see the section Logging of the user manual) to see if you need to increase transport or vfs threads. If you are seeing messages flooding the logs: Message queue '<NAME>' was under Tx pressure while adding <NUM> msgs If ‘<NAME>’ is “tsmb_transport”, then you should increase transport_rx_threads and transport_tx_threads. If ‘<NAME>’ is “vfs_meta_xxx” or “vfs_io_xxx” then you should increase the vfs_metadata_threads and vfs_data_threads.