Tune StorNext for Small Files
This section describes configuration settings that can lead to improved performance when using Storage Manager with workflows involving many small files, where the size of the file is 50 kilobytes or less. Before making these adjustments, ensure that the metadata controllers have sufficient RAM to accommodate the new values.
- In the StorNext GUI, adjust the Buffer Cache Size in the file system configuration to 2 GB or larger. This setting is located in the Performance tab under Configuration Parameters.
-
Adjust the
/etc/fstab
file on the primary MDC so that the entry for the StorNext file system contains:threads=16,cachebufsize=64k,buffercachecap=4096,dircachesize=128m,cvnode_max=1048576For example, change:
snfs1 /stornext/snfs1 cvfs rw,noauto 0 0So that it reads instead:
snfs1 /stornext/snfs1 cvfs rw,noauto,threads=16,cachebufsize=64k,buffercachecap=4096,dircachesize=128m,cvnode_max=1048576 0 0 - Restart StorNext to have the changes take effect.

Note: The following SNFS mount command settings are explained in greater detail in the mount_cvfs man page.
Multiple mounted file systems typically share a single buffer cache. A StorNext client buffer cache is created for each unique cachebufsize in use. By default, all file system mounts have the same cachebufsize, so they all share the same buffer cache.
The default sizes of the client buffer cache depend on the amount of physical memory detected on your system, as illustrated below.
Amount of Physical Memory Detected | Default Size of the Client Buffer Cache |
---|---|
Less than 2 GB | 256 MB |
Greater than or equal to 2 GB and less than 4 GB | 512 MB |
Greater than or equal to 4 GB and less than 8 GB | 1 GB |
Greater than or equal to 8 GB | 2 GB |
The specific buffer size within the cache defaults to either 256 K (when the total buffer cache size is less than or equal to 1 GB) or 1 MB (for large caches).
Note: Some workflows that do small random I/O could benefit by reducing the cachebufsize to 64 K or smaller, since a small random write within a file requires a read-modify-write of cachebufsize.
In general, increasing the size of the buffer cache will not improve performance for streaming reads and writes. However, a large cache helps greatly in cases of multiple concurrent streams, and where files are being written and subsequently accessed. The total buffer cache size is adjusted with the buffercachecap setting.
The buffer cache I/O size is adjusted using the cachebufsize setting. The default setting is usually optimal; however, sometimes you can improve performance by changing this setting to match the RAID 5 stripe size.
The cachebufsize parameter is a mount option and can be unique for every client that mounts the file system.
Buffer cache read-ahead can be adjusted with the buffercache_readahead setting. When the system detects that a file is being read in its entirety, several buffer cache I/O daemons pre-fetch data from the file in the background for improved performance. The default setting is optimal in most scenarios.
The auto_dma_read_length and auto_dma_write_length settings determine the minimum transfer size where direct DMA I/O is performed instead of using the buffer cache for well-formed I/O. These settings can be useful when performance degradation is observed for small DMA I/O sizes compared to buffer cache.
For example, if buffer cache I/O throughput is 200 MB/sec but 512K DMA I/O size observes only 100MB/sec, it would be useful to determine which DMA I/O size matches the buffer cache performance and adjust auto_dma_read_length and auto_dma_write_length accordingly. The lmdd utility is handy here.
The dircachesize option sets the size of the directory information cache on the client. This cache can dramatically improve the speed of readdir operations by reducing metadata network message traffic between the SNFS client and FSM. Increasing this value improves performance in scenarios where very large directories are not observing the benefit of the client directory cache.
On Windows, to change the size of the pool used by the buffer cache at mount time, modify the Minimum Total Cache Size field on the Advanced Cache Options tab in the StorNext Client Configuration Tool. To change the size of each cache buffer, modify the Individual Buffer Size field on the same tab.
Note: These settings do not apply to Apple Xsan Clients, since they do not use the StorNext buffer cache.