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.
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.
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.mFTC is
set to 20k for all subsequent measurement series of this case study.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
mmlsconfigonly shows the planned value. Usemmdiagto 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.mFTCcannot be changed immediately (via the -i or -I options).- Setting
mFTCto a high value on purpose is not recommended. If the value is too high, the pagepool can become ineffective.