Setting the maxFilesToCache parameter

The maxFilesToCache parameter is the maximum total number of different files that can be cached at one time in the pagepool.

Every entry in the pagepool requires some pageable memory to hold the content of the file's inode plus control data structures. For systems with applications that handle a large number of files like ECM systems, increasing the value for maxFilesToCache (mFTC) may prove beneficial. This is especially true when the system accesses a large number of small files.

The value should be large enough to handle the number of concurrently open files plus allow caching of recently used files.

Figure 1 shows the Spectrum Scale startIO metric for different mFTC values. The startIO metric was taken from the statistics for the Spectrum Scale virtual file system (VFS). It summarizes the Spectrum Scale I/O requests that trigger an I/O operation for the Linux® operating system in a specific time interval.

Figure 1. Spectrum Scale maxFilesToCache
This graphic shows the Spectrum Scale maxFilesToCache.

The measurement series was done for an 8 GiB pagepool and a medium-to-high workload level (750 virtual ICN users).

The default mFTC value of 4k (4000) showed the highest startIO number. This indicates that the pagepool was not optimally utilized for the workload. For the measurement series, mFTC was increased step-by-step up to a value of 100k (100.000) files.

The number of 20k (20.000) for mFTC has the lowest startIO number and seems to utilize the pagepool best. Note that the range of mFTC values is broad with a similar caching behaviour, but once the value is set to high, the startIO calls indicate a degrading cache-hit ratio.
Note: mFTC is set to 20k for all subsequent measurement series of this case study.
This example shows how mFTC is set to 20.000:

# mmlsconfig maxFilesToCache
maxFilesToCache 4000 
# mmchconfig maxFilesToCache=20000
mmchconfig: Command successfully completed
mmchconfig: Propagating the cluster configuration data to all
   affected nodes.  This is an asynchronous process.

# mmlsconfig maxFilesToCache
maxFilesToCache 20000  

# mmdiag --config | grep maxFilesToCache
! maxFilesToCache 4000
Note:
  • mmlsconfig only shows the planned value. Use mmdiag to display the currently-active value. It can be different from the changed value, because a GPFS daemon restart is required in order to become the planned value active. mFTC cannot be changed immediately (via the -i or -I options).
  • Setting mFTC to a high value on purpose is not recommended. If the value is too high, the pagepool can become ineffective.