ganesha-cache-config - NFS Ganesha Cache Configuration File
/etc/ganesha/ganesha.conf
NFS-Ganesha reads the configuration data from: |
/etc/ganesha/ganesha.conf
This file lists NFS-Ganesha Cache config options.
- NParts (uint32, range 1
to 32633, default 7)
- Partitions in the MDCACHE tree.
- Cache_Size(uint32,
range 1 to UINT32_MAX, default 32633)
- Per-partition hash table size.
- Use_Getattr_Directory_Invalidation(bool,
default false)
- Use getattr for directory invalidation.
- Dir_Chunk(uint32,
range 0 to UINT32_MAX, default 128)
- Size of per-directory dirent cache chunks, 0 means directory chunking is
not enabled. Dir_Chunk should always be enabled. Most FSAL modules
especially FSAL_RGW/FSAL_GLUSTER need it to make readdir work well.
- Detached_Mult(uint32,
range 1 to UINT32_MAX, default 1)
- Max number of detached directory entries expressed as a multiple of the
chunk size.
- Entries_HWMark(uint32,
range 1 to UINT32_MAX, default 100000)
- The point at which object cache entries will start being reused.
- Entries_Release_Size(uint32,
range 0 to UINT32_MAX, default 100)
- The number of entries attempted to release each time when the handle cache
has exceeded the entries high water mark.
- Chunks_HWMark(uint32,
range 1 to UINT32_MAX, default 1000)
- The point at which dirent cache chunks will start being reused.
- Chunks_LWMark(uint32,
range 1 to UINT32_MAX, default 1000)
- The target for reaping dirent cache chunks to drain the cache.
Entries_HWMark, Dir_Chunk, Chunks_HWMark, Chunks_LWMark all
play together. While a dirent chunk is cached, the object cache entries
that are part of that dirent chunk will be retained in the cache
indefinitely. Note that this means that possibly Chunks_LWMark *
Dir_Chunk entries will be retained. If this is larger than
Entries_HWMark, then the object cache may end up remaining above
Entries_HWMark for a significant time. Consider the average size of the
directories and the number of directories desired to be maintained in
the cache and set Chunks_LWMark appropriately.
Note that the Chunks_LWMark defaults to the same value as
Chunks_HWMark and these are set to 1/100 of Entries_HWMark suggesting an
average directory size of 100. It may be desirable to set Chunks_LWMark
less than Chunks_HWMark if it is desirable to allow large directory
chunks to not immediately be re-used, but it is desirable to in the
short term drain the dirent cache down to a smaller number.
- LRU_Run_Interval(uint32,
range 1 to 24 * 3600, default 90)
- Base interval in seconds between runs of the LRU cleaner thread.
- Cache_FDs(bool,
true)
- If "Cache_FDs" is set to false, the reaper thread aggressively
closes FDs , significantly reducing the number of open FDs. This will help
to maintain a minimal number of open FDs.
If "Cache_FDs" is set to true (default), FDs are
cached, and the LRU reaper thread closes FDs only when the current open
FD count reaches or exceeds the "fds_lowat" threshold.
- FD_Limit_Percent(uint32,
range 0 to 100, default 99)
- The percentage of the system-imposed maximum of file descriptors at which
Ganesha will deny requests.
- FD_HWMark_Percent(uint32,
range 0 to 100, default 90)
- The percentage of the system-imposed maximum of file descriptors above
which Ganesha will make greater efforts at reaping.
- FD_LWMark_Percent(uint32,
range 0 to 100, default 50)
- The percentage of the system-imposed maximum of file descriptors below
which Ganesha will not reap file descriptors.
- Reaper_Work(uint32,
range 1 to 2000, default 0)
- Roughly, the amount of work to do on each pass through the thread under
normal conditions. (Ideally, a multiple of the number of lanes.)
This setting is deprecated. Please use
Reaper_Work_Per_Lane
- Reaper_Work_Per_Lane(uint32,
range 1 to UINT32_MAX, default 50)
- This is the number of handles per lane to scan when performing LRU
maintenance. This task is performed by the Reaper thread.
- Biggest_Window(uint32,
range 1 to 100, default 40)
- The largest window (as a percentage of the system-imposed limit on FDs) of
work that we will do in extremis.
- Required_Progress(uint32,
range 1 to 50, default 5)
- Percentage of progress toward the high water mark required in in a pass
through the thread when in extremis
- Futility_Count(uint32,
range 1 to 50, default 8)
- Number of failures to approach the high watermark before we disable
caching, when in extremis.
- Dirmap_HWMark(uint32,
range 1 to UINT32_MAX, default 10000)
- The point at which dirmap entries are reused. This puts a practical limit
on the number of simultaneous readdirs that may be in progress on an
export for a whence-is-name FSAL (currently only FSAL_RGW)