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
mmlsconfig
only shows the planned value. Usemmdiag
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.