The cache-fs
serves as a binary cache that uses LRU (Least Recently Used) as its cleanup protocol. This can improve Artifactory's performance since frequent requests will be served from the cache-fs
(as in the case of the S3 binary provider).
The cache-fs
binary provider will be the closest filestore layer of Artifactory. This means that if the filestore is mounted, we would like the cache-fs
to be local on the artifactory server itself (if the filestore is local, then cache-fs is meaningless). In the case of an HA configuration, the cache-fs
will be mounted and the recommendation is for each node to have its own cache-fs
layer.
cache-fs template configuration
If you choose to use the cache-fs
template, your binarystore.xml
configuration file should look like this:
<config version="v1"> <chain template="cache-fs"/> </config>
What's in the template?
While you don't need to configure anything else in your binarystore.xml
, this is what the cache-fs
template looks like under the hood.
<chain> <!-- template="cache-fs" --> <provider id="cache-fs" type="cache-fs"> <provider id="file-system" type="file-system"/> </provider> </chain>
This example sets the cache-fs size to be 10GB and its location (absolute path since it starts with a "/") to be /cache/filestore.
<config version="v1"> <chain template="cache-fs"/> <provider id="cache-fs" type="cache-fs"> <cacheProviderDir>/cache/filestore</cacheProviderDir> <maxCacheSize>10000000000</maxCacheSize> </provider> </config>
Where:
Parameter | Description |
---|---|
type | cache-fs |
maxCacheSize | Default: 5000000000 (5GB) The maximum storage allocated for the cache in bytes. Please note that maxCacheSize does not include files that are in progress of being uploaded (which is saved under cache/_pre); thus it is recommended to keep extra spaces for _pre folder. |
cacheProviderDir | Default: cache The root folder of binaries for the filestore cache. If the value specified starts with a forward slash (“/”) it is considered the fully qualified path to the filestore folder. Otherwise, it is considered relative to the baseDataDir. |
Example: NFS filestore with caching
The following example shows how you can configure an NFS filestore with caching.
<config version="v1"> <chain> <provider id="cache-fs" type="cache-fs"> <provider id="file-system" type="file-system"/> </provider> </chain> <provider id="cache-fs" type="cache-fs"> <cacheProviderDir>/path/to/cache/dir</cacheProviderDir> <maxCacheSize>100000000000</maxCacheSize> </provider> <provider id="file-system" type="file-system"> <fileStoreDir>/path/to/filestore/dir</fileStoreDir> </provider> </config>
Ensure that you create the folders in the configuration before you start Artifactory.