Adjusting the MVFS scaling factor

About this task

The default MVFS scaling factor is automatically set based on the available physical memory installed on the host.
  • For Windows, the scaling factor can be up to a maximum value of 5.
  • For UNIX/Linux, the scaling factor can be up to a value of 24, which is the recommended maximum. You can manually adjust the value to be higher. However, when considering setting the scaling factor higher than 24, be aware that a larger cache might not improve performance on all hosts. The cost of managing that cache (particularly the locking cost on multiprocessor hosts) can exceed the benefits.
Effect of memory size on the MVFS scaling factor shows how the MVFS scaling factor should be adjusted based on memory size.
Table 1. Effect of memory size on the MVFS scaling factor
Memory size (MB) Memory<24 24<= Memory <512 512<= Memory <3072 Memory >= 3072
MVFS Scaling Factor 0 1 2 size/1024

In Effect of memory size on the MVFS scaling factor, the value of size excludes memory required by the operating system kernel. For size values greater than 3072 MB (3 GB), the MVFS scaling factor is rounded down to the nearest multiple of 1024 MB. For example, if a host has 4096 MB (4 GB) of physical memory and the kernel consumes 100 MB, the MVFS scaling factor is set to 3.

You can use setcache –mvfs –persistent –scalefactor to override the default scaling factor setting. On Windows, where the scaling factor is up to a maximum value of 5, you can also use the VersionVault program in Control Panel. On the MVFS Performance page, set the scaling factor value in the Scaling factor to initialize MVFS with more memory for better performance field. Click OK.

Increasing the scaling factor by one requires about 500 KB of additional kernel memory (200 KB nonpageable, 300 KB pageable).
Note: If you use setcache to request more kernel memory than is currently available, the request fails with a not enough space error. If this happens, you must request a smaller cache size or else terminate unnecessary processes that are consuming kernel memory.
Changing the value of the scaling factor scales all of the MVFS cache sizes proportionally as shown in Effect of MVFS scaling factor on individual MVFS cache sizes.
Table 2. Effect of MVFS scaling factor on individual MVFS cache sizes
MVFS cache name scaling factor = 0 scaling factor = 1 scaling factor = 2 scaling factor = f (f > 2)
mnode Cache (mnmax) 4096 8192 12,288 4096(f+1), f<4; 2048(f+7), f>4
mnode Freelist Max 901 1802 2703 0.22 mnmax
Cleartext Freelist Max (Linux® and the UNIX® system) 900 1800 2700 900(f+1)
Cleartext Freelist Max (Windows®) 900 1800 1800 1800
DNC File Cache 800 bytes 1600 bytes 2400 bytes 800(f+1) bytes
DNC Directory Cache 200 bytes 400 bytes 600 bytes 200(f+1) bytes
DNC ENOENT Cache 800 1600 2400 800(f+1)
RPC Handle Cache 5 10 15 5(f+1), f < 2 10(f+1), f > 2
readdir Block Cache 2 4 6 2(f+1), f < 26, f > 2