You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2009 lines
45 KiB

  1. <!doctype html>
  2. <html lang="en" class="no-js">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width,initial-scale=1">
  6. <meta name="description" content="mergerfs - a featureful union filesystem">
  7. <link rel="canonical" href="https://trapexit.github.io/mergerfs/config/cache/">
  8. <link rel="prev" href="../rename_and_link/">
  9. <link rel="next" href="../readahead/">
  10. <link rel="icon" href="../../assets/images/favicon.png">
  11. <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.6.7">
  12. <title>caching - mergerfs</title>
  13. <link rel="stylesheet" href="../../assets/stylesheets/main.8608ea7d.min.css">
  14. <link rel="stylesheet" href="../../assets/stylesheets/palette.06af60db.min.css">
  15. <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
  16. <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
  17. <style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
  18. <script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
  19. </head>
  20. <body dir="ltr" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo">
  21. <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
  22. <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
  23. <label class="md-overlay" for="__drawer"></label>
  24. <div data-md-component="skip">
  25. <a href="#caching" class="md-skip">
  26. Skip to content
  27. </a>
  28. </div>
  29. <div data-md-component="announce">
  30. </div>
  31. <header class="md-header md-header--shadow" data-md-component="header">
  32. <nav class="md-header__inner md-grid" aria-label="Header">
  33. <a href="../.." title="mergerfs" class="md-header__button md-logo" aria-label="mergerfs" data-md-component="logo">
  34. <img src="../../logo.jpeg" alt="logo">
  35. </a>
  36. <label class="md-header__button md-icon" for="__drawer">
  37. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
  38. </label>
  39. <div class="md-header__title" data-md-component="header-title">
  40. <div class="md-header__ellipsis">
  41. <div class="md-header__topic">
  42. <span class="md-ellipsis">
  43. mergerfs
  44. </span>
  45. </div>
  46. <div class="md-header__topic" data-md-component="header-topic">
  47. <span class="md-ellipsis">
  48. caching
  49. </span>
  50. </div>
  51. </div>
  52. </div>
  53. <form class="md-header__option" data-md-component="palette">
  54. <input class="md-option" data-md-color-media="(prefers-color-scheme)" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_0">
  55. <label class="md-header__button md-icon" title="Switch to light mode" for="__palette_1" hidden>
  56. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m14.3 16-.7-2h-3.2l-.7 2H7.8L11 7h2l3.2 9zM20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12zm-9.15 3.96h2.3L12 9z"/></svg>
  57. </label>
  58. <input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_1">
  59. <label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_2" hidden>
  60. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg>
  61. </label>
  62. <input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="indigo" data-md-color-accent="indigo" aria-label="Switch to system preference" type="radio" name="__palette" id="__palette_2">
  63. <label class="md-header__button md-icon" title="Switch to system preference" for="__palette_0" hidden>
  64. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg>
  65. </label>
  66. </form>
  67. <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
  68. <label class="md-header__button md-icon" for="__search">
  69. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
  70. </label>
  71. <div class="md-search" data-md-component="search" role="dialog">
  72. <label class="md-search__overlay" for="__search"></label>
  73. <div class="md-search__inner" role="search">
  74. <form class="md-search__form" name="search">
  75. <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
  76. <label class="md-search__icon md-icon" for="__search">
  77. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
  78. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
  79. </label>
  80. <nav class="md-search__options" aria-label="Search">
  81. <a href="javascript:void(0)" class="md-search__icon md-icon" title="Share" aria-label="Share" data-clipboard data-clipboard-text="" data-md-component="search-share" tabindex="-1">
  82. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.15c-.05.21-.08.43-.08.66 0 1.61 1.31 2.91 2.92 2.91s2.92-1.3 2.92-2.91A2.92 2.92 0 0 0 18 16.08"/></svg>
  83. </a>
  84. <button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
  85. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
  86. </button>
  87. </nav>
  88. </form>
  89. <div class="md-search__output">
  90. <div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
  91. <div class="md-search-result" data-md-component="search-result">
  92. <div class="md-search-result__meta">
  93. Initializing search
  94. </div>
  95. <ol class="md-search-result__list" role="presentation"></ol>
  96. </div>
  97. </div>
  98. </div>
  99. </div>
  100. </div>
  101. <div class="md-header__source">
  102. <a href="https://github.com/trapexit/mergerfs" title="Go to repository" class="md-source" data-md-component="source">
  103. <div class="md-source__icon md-icon">
  104. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"/></svg>
  105. </div>
  106. <div class="md-source__repository">
  107. mergerfs
  108. </div>
  109. </a>
  110. </div>
  111. </nav>
  112. </header>
  113. <div class="md-container" data-md-component="container">
  114. <main class="md-main" data-md-component="main">
  115. <div class="md-main__inner md-grid">
  116. <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
  117. <div class="md-sidebar__scrollwrap">
  118. <div class="md-sidebar__inner">
  119. <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
  120. <label class="md-nav__title" for="__drawer">
  121. <a href="../.." title="mergerfs" class="md-nav__button md-logo" aria-label="mergerfs" data-md-component="logo">
  122. <img src="../../logo.jpeg" alt="logo">
  123. </a>
  124. mergerfs
  125. </label>
  126. <div class="md-nav__source">
  127. <a href="https://github.com/trapexit/mergerfs" title="Go to repository" class="md-source" data-md-component="source">
  128. <div class="md-source__icon md-icon">
  129. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"/></svg>
  130. </div>
  131. <div class="md-source__repository">
  132. mergerfs
  133. </div>
  134. </a>
  135. </div>
  136. <ul class="md-nav__list" data-md-scrollfix>
  137. <li class="md-nav__item">
  138. <a href="../.." class="md-nav__link">
  139. <span class="md-ellipsis">
  140. Home
  141. </span>
  142. </a>
  143. </li>
  144. <li class="md-nav__item">
  145. <a href="../../quickstart/" class="md-nav__link">
  146. <span class="md-ellipsis">
  147. QuickStart
  148. </span>
  149. </a>
  150. </li>
  151. <li class="md-nav__item md-nav__item--nested">
  152. <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
  153. <label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
  154. <span class="md-ellipsis">
  155. Installation
  156. </span>
  157. <span class="md-nav__icon md-icon"></span>
  158. </label>
  159. <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
  160. <label class="md-nav__title" for="__nav_3">
  161. <span class="md-nav__icon md-icon"></span>
  162. Installation
  163. </label>
  164. <ul class="md-nav__list" data-md-scrollfix>
  165. <li class="md-nav__item">
  166. <a href="../../setup/installation/" class="md-nav__link">
  167. <span class="md-ellipsis">
  168. Installation
  169. </span>
  170. </a>
  171. </li>
  172. <li class="md-nav__item">
  173. <a href="../../setup/upgrade/" class="md-nav__link">
  174. <span class="md-ellipsis">
  175. Upgrade
  176. </span>
  177. </a>
  178. </li>
  179. <li class="md-nav__item">
  180. <a href="../../setup/build/" class="md-nav__link">
  181. <span class="md-ellipsis">
  182. Build
  183. </span>
  184. </a>
  185. </li>
  186. </ul>
  187. </nav>
  188. </li>
  189. <li class="md-nav__item">
  190. <a href="../../terminology/" class="md-nav__link">
  191. <span class="md-ellipsis">
  192. Terminology
  193. </span>
  194. </a>
  195. </li>
  196. <li class="md-nav__item md-nav__item--active md-nav__item--nested">
  197. <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" checked>
  198. <label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
  199. <span class="md-ellipsis">
  200. Config
  201. </span>
  202. <span class="md-nav__icon md-icon"></span>
  203. </label>
  204. <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="true">
  205. <label class="md-nav__title" for="__nav_5">
  206. <span class="md-nav__icon md-icon"></span>
  207. Config
  208. </label>
  209. <ul class="md-nav__list" data-md-scrollfix>
  210. <li class="md-nav__item">
  211. <a href="../options/" class="md-nav__link">
  212. <span class="md-ellipsis">
  213. Options
  214. </span>
  215. </a>
  216. </li>
  217. <li class="md-nav__item">
  218. <a href="../deprecated_options/" class="md-nav__link">
  219. <span class="md-ellipsis">
  220. Deprecated Options
  221. </span>
  222. </a>
  223. </li>
  224. <li class="md-nav__item">
  225. <a href="../branches/" class="md-nav__link">
  226. <span class="md-ellipsis">
  227. branches
  228. </span>
  229. </a>
  230. </li>
  231. <li class="md-nav__item">
  232. <a href="../functions_categories_and_policies/" class="md-nav__link">
  233. <span class="md-ellipsis">
  234. functions, categories and policies
  235. </span>
  236. </a>
  237. </li>
  238. <li class="md-nav__item">
  239. <a href="../func_readdir/" class="md-nav__link">
  240. <span class="md-ellipsis">
  241. func.readdir
  242. </span>
  243. </a>
  244. </li>
  245. <li class="md-nav__item">
  246. <a href="../rename_and_link/" class="md-nav__link">
  247. <span class="md-ellipsis">
  248. rename and link
  249. </span>
  250. </a>
  251. </li>
  252. <li class="md-nav__item md-nav__item--active">
  253. <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
  254. <label class="md-nav__link md-nav__link--active" for="__toc">
  255. <span class="md-ellipsis">
  256. caching
  257. </span>
  258. <span class="md-nav__icon md-icon"></span>
  259. </label>
  260. <a href="./" class="md-nav__link md-nav__link--active">
  261. <span class="md-ellipsis">
  262. caching
  263. </span>
  264. </a>
  265. <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
  266. <label class="md-nav__title" for="__toc">
  267. <span class="md-nav__icon md-icon"></span>
  268. Table of contents
  269. </label>
  270. <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
  271. <li class="md-nav__item">
  272. <a href="#cachefiles" class="md-nav__link">
  273. <span class="md-ellipsis">
  274. cache.files
  275. </span>
  276. </a>
  277. </li>
  278. <li class="md-nav__item">
  279. <a href="#cacheentry" class="md-nav__link">
  280. <span class="md-ellipsis">
  281. cache.entry
  282. </span>
  283. </a>
  284. </li>
  285. <li class="md-nav__item">
  286. <a href="#cachenegative_entry" class="md-nav__link">
  287. <span class="md-ellipsis">
  288. cache.negative_entry
  289. </span>
  290. </a>
  291. </li>
  292. <li class="md-nav__item">
  293. <a href="#cacheattr" class="md-nav__link">
  294. <span class="md-ellipsis">
  295. cache.attr
  296. </span>
  297. </a>
  298. </li>
  299. <li class="md-nav__item">
  300. <a href="#cachestatfs" class="md-nav__link">
  301. <span class="md-ellipsis">
  302. cache.statfs
  303. </span>
  304. </a>
  305. </li>
  306. <li class="md-nav__item">
  307. <a href="#cachesymlinks" class="md-nav__link">
  308. <span class="md-ellipsis">
  309. cache.symlinks
  310. </span>
  311. </a>
  312. </li>
  313. <li class="md-nav__item">
  314. <a href="#cachereaddir" class="md-nav__link">
  315. <span class="md-ellipsis">
  316. cache.readdir
  317. </span>
  318. </a>
  319. </li>
  320. <li class="md-nav__item">
  321. <a href="#cachewriteback" class="md-nav__link">
  322. <span class="md-ellipsis">
  323. cache.writeback
  324. </span>
  325. </a>
  326. </li>
  327. </ul>
  328. </nav>
  329. </li>
  330. <li class="md-nav__item">
  331. <a href="../readahead/" class="md-nav__link">
  332. <span class="md-ellipsis">
  333. readahead
  334. </span>
  335. </a>
  336. </li>
  337. <li class="md-nav__item">
  338. <a href="../inodecalc/" class="md-nav__link">
  339. <span class="md-ellipsis">
  340. inodecalc
  341. </span>
  342. </a>
  343. </li>
  344. <li class="md-nav__item">
  345. <a href="../threads/" class="md-nav__link">
  346. <span class="md-ellipsis">
  347. threads
  348. </span>
  349. </a>
  350. </li>
  351. <li class="md-nav__item">
  352. <a href="../pin-threads/" class="md-nav__link">
  353. <span class="md-ellipsis">
  354. pin-threads
  355. </span>
  356. </a>
  357. </li>
  358. <li class="md-nav__item">
  359. <a href="../link_cow/" class="md-nav__link">
  360. <span class="md-ellipsis">
  361. link_cow
  362. </span>
  363. </a>
  364. </li>
  365. <li class="md-nav__item">
  366. <a href="../fuse_msg_size/" class="md-nav__link">
  367. <span class="md-ellipsis">
  368. fuse_msg_size
  369. </span>
  370. </a>
  371. </li>
  372. <li class="md-nav__item">
  373. <a href="../follow-symlinks/" class="md-nav__link">
  374. <span class="md-ellipsis">
  375. follow-symlinks
  376. </span>
  377. </a>
  378. </li>
  379. <li class="md-nav__item">
  380. <a href="../link-exdev/" class="md-nav__link">
  381. <span class="md-ellipsis">
  382. link-exdev
  383. </span>
  384. </a>
  385. </li>
  386. <li class="md-nav__item">
  387. <a href="../rename-exdev/" class="md-nav__link">
  388. <span class="md-ellipsis">
  389. rename-exdev
  390. </span>
  391. </a>
  392. </li>
  393. <li class="md-nav__item">
  394. <a href="../symlinkify/" class="md-nav__link">
  395. <span class="md-ellipsis">
  396. symlinkify
  397. </span>
  398. </a>
  399. </li>
  400. <li class="md-nav__item">
  401. <a href="../nullrw/" class="md-nav__link">
  402. <span class="md-ellipsis">
  403. nullrw
  404. </span>
  405. </a>
  406. </li>
  407. <li class="md-nav__item">
  408. <a href="../xattr/" class="md-nav__link">
  409. <span class="md-ellipsis">
  410. xattr
  411. </span>
  412. </a>
  413. </li>
  414. <li class="md-nav__item">
  415. <a href="../nfsopenhack/" class="md-nav__link">
  416. <span class="md-ellipsis">
  417. nfsopenhack
  418. </span>
  419. </a>
  420. </li>
  421. <li class="md-nav__item">
  422. <a href="../statfs/" class="md-nav__link">
  423. <span class="md-ellipsis">
  424. statfs / statvfs
  425. </span>
  426. </a>
  427. </li>
  428. <li class="md-nav__item">
  429. <a href="../flush-on-close/" class="md-nav__link">
  430. <span class="md-ellipsis">
  431. flush-on-close
  432. </span>
  433. </a>
  434. </li>
  435. <li class="md-nav__item">
  436. <a href="../export-support/" class="md-nav__link">
  437. <span class="md-ellipsis">
  438. export-support
  439. </span>
  440. </a>
  441. </li>
  442. </ul>
  443. </nav>
  444. </li>
  445. <li class="md-nav__item">
  446. <a href="../../error_handling_and_logging/" class="md-nav__link">
  447. <span class="md-ellipsis">
  448. Error Handling and Logging
  449. </span>
  450. </a>
  451. </li>
  452. <li class="md-nav__item">
  453. <a href="../../runtime_interfaces/" class="md-nav__link">
  454. <span class="md-ellipsis">
  455. Runtime Interfaces
  456. </span>
  457. </a>
  458. </li>
  459. <li class="md-nav__item">
  460. <a href="../../remote_filesystems/" class="md-nav__link">
  461. <span class="md-ellipsis">
  462. Remote Filesystems
  463. </span>
  464. </a>
  465. </li>
  466. <li class="md-nav__item">
  467. <a href="../../tips_notes/" class="md-nav__link">
  468. <span class="md-ellipsis">
  469. Tips and Notes
  470. </span>
  471. </a>
  472. </li>
  473. <li class="md-nav__item">
  474. <a href="../../known_issues_bugs/" class="md-nav__link">
  475. <span class="md-ellipsis">
  476. Known Issues and Bugs
  477. </span>
  478. </a>
  479. </li>
  480. <li class="md-nav__item">
  481. <a href="../../project_comparisons/" class="md-nav__link">
  482. <span class="md-ellipsis">
  483. Project Comparisons
  484. </span>
  485. </a>
  486. </li>
  487. <li class="md-nav__item">
  488. <a href="../../performance/" class="md-nav__link">
  489. <span class="md-ellipsis">
  490. Tweaking Performance
  491. </span>
  492. </a>
  493. </li>
  494. <li class="md-nav__item">
  495. <a href="../../benchmarking/" class="md-nav__link">
  496. <span class="md-ellipsis">
  497. Benchmarking
  498. </span>
  499. </a>
  500. </li>
  501. <li class="md-nav__item">
  502. <a href="../../tooling/" class="md-nav__link">
  503. <span class="md-ellipsis">
  504. Tooling
  505. </span>
  506. </a>
  507. </li>
  508. <li class="md-nav__item">
  509. <a href="../../usage_patterns/" class="md-nav__link">
  510. <span class="md-ellipsis">
  511. Usage Patterns
  512. </span>
  513. </a>
  514. </li>
  515. <li class="md-nav__item md-nav__item--nested">
  516. <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_16" >
  517. <label class="md-nav__link" for="__nav_16" id="__nav_16_label" tabindex="0">
  518. <span class="md-ellipsis">
  519. FAQ
  520. </span>
  521. <span class="md-nav__icon md-icon"></span>
  522. </label>
  523. <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_16_label" aria-expanded="false">
  524. <label class="md-nav__title" for="__nav_16">
  525. <span class="md-nav__icon md-icon"></span>
  526. FAQ
  527. </label>
  528. <ul class="md-nav__list" data-md-scrollfix>
  529. <li class="md-nav__item">
  530. <a href="../../faq/reliability_and_scalability/" class="md-nav__link">
  531. <span class="md-ellipsis">
  532. Reliability and Scalability
  533. </span>
  534. </a>
  535. </li>
  536. <li class="md-nav__item">
  537. <a href="../../faq/usage_and_functionality/" class="md-nav__link">
  538. <span class="md-ellipsis">
  539. Usage and Functionality
  540. </span>
  541. </a>
  542. </li>
  543. <li class="md-nav__item">
  544. <a href="../../faq/configuration_and_policies/" class="md-nav__link">
  545. <span class="md-ellipsis">
  546. Configuration and Policies
  547. </span>
  548. </a>
  549. </li>
  550. <li class="md-nav__item">
  551. <a href="../../faq/compatibility_and_integration/" class="md-nav__link">
  552. <span class="md-ellipsis">
  553. Compatibility and Integration
  554. </span>
  555. </a>
  556. </li>
  557. <li class="md-nav__item">
  558. <a href="../../faq/recommendations_and_warnings/" class="md-nav__link">
  559. <span class="md-ellipsis">
  560. Recommendations and Warnings
  561. </span>
  562. </a>
  563. </li>
  564. <li class="md-nav__item">
  565. <a href="../../faq/technical_behavior_and_limitations/" class="md-nav__link">
  566. <span class="md-ellipsis">
  567. Technical Behavior and Limitations
  568. </span>
  569. </a>
  570. </li>
  571. <li class="md-nav__item">
  572. <a href="../../faq/why_isnt_it_working/" class="md-nav__link">
  573. <span class="md-ellipsis">
  574. "Why isn't it working?"
  575. </span>
  576. </a>
  577. </li>
  578. <li class="md-nav__item">
  579. <a href="../../faq/limit_drive_spinup/" class="md-nav__link">
  580. <span class="md-ellipsis">
  581. Limiting drive spinup
  582. </span>
  583. </a>
  584. </li>
  585. </ul>
  586. </nav>
  587. </li>
  588. <li class="md-nav__item">
  589. <a href="../../related_projects/" class="md-nav__link">
  590. <span class="md-ellipsis">
  591. Related Projects
  592. </span>
  593. </a>
  594. </li>
  595. <li class="md-nav__item">
  596. <a href="../../media_and_publicity/" class="md-nav__link">
  597. <span class="md-ellipsis">
  598. Media and Publicity
  599. </span>
  600. </a>
  601. </li>
  602. <li class="md-nav__item">
  603. <a href="../../support/" class="md-nav__link">
  604. <span class="md-ellipsis">
  605. Support
  606. </span>
  607. </a>
  608. </li>
  609. <li class="md-nav__item">
  610. <a href="../../sponsorship_and_donations/" class="md-nav__link">
  611. <span class="md-ellipsis">
  612. Sponsorship and Donations
  613. </span>
  614. </a>
  615. </li>
  616. </ul>
  617. </nav>
  618. </div>
  619. </div>
  620. </div>
  621. <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
  622. <div class="md-sidebar__scrollwrap">
  623. <div class="md-sidebar__inner">
  624. <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
  625. <label class="md-nav__title" for="__toc">
  626. <span class="md-nav__icon md-icon"></span>
  627. Table of contents
  628. </label>
  629. <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
  630. <li class="md-nav__item">
  631. <a href="#cachefiles" class="md-nav__link">
  632. <span class="md-ellipsis">
  633. cache.files
  634. </span>
  635. </a>
  636. </li>
  637. <li class="md-nav__item">
  638. <a href="#cacheentry" class="md-nav__link">
  639. <span class="md-ellipsis">
  640. cache.entry
  641. </span>
  642. </a>
  643. </li>
  644. <li class="md-nav__item">
  645. <a href="#cachenegative_entry" class="md-nav__link">
  646. <span class="md-ellipsis">
  647. cache.negative_entry
  648. </span>
  649. </a>
  650. </li>
  651. <li class="md-nav__item">
  652. <a href="#cacheattr" class="md-nav__link">
  653. <span class="md-ellipsis">
  654. cache.attr
  655. </span>
  656. </a>
  657. </li>
  658. <li class="md-nav__item">
  659. <a href="#cachestatfs" class="md-nav__link">
  660. <span class="md-ellipsis">
  661. cache.statfs
  662. </span>
  663. </a>
  664. </li>
  665. <li class="md-nav__item">
  666. <a href="#cachesymlinks" class="md-nav__link">
  667. <span class="md-ellipsis">
  668. cache.symlinks
  669. </span>
  670. </a>
  671. </li>
  672. <li class="md-nav__item">
  673. <a href="#cachereaddir" class="md-nav__link">
  674. <span class="md-ellipsis">
  675. cache.readdir
  676. </span>
  677. </a>
  678. </li>
  679. <li class="md-nav__item">
  680. <a href="#cachewriteback" class="md-nav__link">
  681. <span class="md-ellipsis">
  682. cache.writeback
  683. </span>
  684. </a>
  685. </li>
  686. </ul>
  687. </nav>
  688. </div>
  689. </div>
  690. </div>
  691. <div class="md-content" data-md-component="content">
  692. <article class="md-content__inner md-typeset">
  693. <a href="https://github.com/trapexit/mergerfs/edit/master/mkdocs/docs/config/cache.md" title="Edit this page" class="md-content__button md-icon">
  694. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M10 20H6V4h7v5h5v3.1l2-2V8l-6-6H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h4zm10.2-7c.1 0 .3.1.4.2l1.3 1.3c.2.2.2.6 0 .8l-1 1-2.1-2.1 1-1c.1-.1.2-.2.4-.2m0 3.9L14.1 23H12v-2.1l6.1-6.1z"/></svg>
  695. </a>
  696. <a href="https://github.com/trapexit/mergerfs/raw/master/mkdocs/docs/config/cache.md" title="View source of this page" class="md-content__button md-icon">
  697. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17 18c.56 0 1 .44 1 1s-.44 1-1 1-1-.44-1-1 .44-1 1-1m0-3c-2.73 0-5.06 1.66-6 4 .94 2.34 3.27 4 6 4s5.06-1.66 6-4c-.94-2.34-3.27-4-6-4m0 6.5a2.5 2.5 0 0 1-2.5-2.5 2.5 2.5 0 0 1 2.5-2.5 2.5 2.5 0 0 1 2.5 2.5 2.5 2.5 0 0 1-2.5 2.5M9.27 20H6V4h7v5h5v4.07c.7.08 1.36.25 2 .49V8l-6-6H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h4.5a8.2 8.2 0 0 1-1.23-2"/></svg>
  698. </a>
  699. <h1 id="caching">caching</h1>
  700. <h2 id="cachefiles">cache.files</h2>
  701. <p>Controls how <a href="https://en.wikipedia.org/wiki/Page_cache">page caching</a>
  702. works for mergerfs itself. Not the underlying filesystems.</p>
  703. <ul>
  704. <li><code>cache.files=off</code>: Disables page caching for mergerfs.</li>
  705. <li><code>cache.files=partial</code>: Enables page caching. Files are cached
  706. while open.</li>
  707. <li><code>cache.files=full</code>: Enables page caching. Files are cached across
  708. opens.</li>
  709. <li><code>cache.files=auto-full</code>: Enables page caching. Files are cached
  710. across opens if mtime and size are unchanged since previous open.</li>
  711. <li><code>cache.files=per-process</code>: Enable page caching (equivalent to
  712. <code>cache.files=partial</code>) only for processes whose 'comm' name matches
  713. one of the values defined in cache.files.process-names. If the name
  714. does not match the file open is equivalent to <code>cache.files=off</code>.</li>
  715. </ul>
  716. <p>Generally, enabling the page cache actually <em>harms</em>
  717. performance<sup id="fnref:1"><a class="footnote-ref" href="#fn:1">1</a></sup>. In part because it can lead to buffer bloat due to
  718. the kernel caching both the underlying filesystem's file content as
  719. well as the file through mergerfs. However, if you want to confirm
  720. performance differences it is recommended that you perform some
  721. benchmark to confirm which option works best for your setup.</p>
  722. <p>Why then would you want to enable page caching if it consumes ~2x the
  723. RAM as normal and is on average slower? Because it is the only way to
  724. support
  725. <a href="https://man7.org/linux/man-pages/man2/mmap.2.html">mmap</a>. <code>mmap</code> is a
  726. way for programs to treat a file as if it is a contiguous RAM buffer
  727. which is regularly used by a number of programs such as those that
  728. leverage <strong>sqlite3</strong>. Despite <code>mmap</code> not being supported by all
  729. filesystems it is unfortunately common for software to not have an
  730. option to use regular file IO instead of <code>mmap</code>.</p>
  731. <p>The good thing is that in Linux v6.6<sup id="fnref:2"><a class="footnote-ref" href="#fn:2">2</a></sup> and above FUSE can now
  732. transparently enable page caching when mmap is requested. This means
  733. it should be safe to set <code>cache.files=off</code>. However, on Linux v6.5 and
  734. below you will need to configure <code>cache.files</code> as you need.</p>
  735. <h2 id="cacheentry">cache.entry</h2>
  736. <ul>
  737. <li><code>cache.entry=UINT</code>: Sets the number of seconds to cache
  738. entry queries. Defaults to <code>1</code>.</li>
  739. </ul>
  740. <p>The kernel must ask mergerfs about the existence of files. The entry
  741. cache caches that those details which limits the number of requests
  742. sent to mergerfs.</p>
  743. <p>The risk of setting this value, as with most any cache, is related to
  744. <a href="https://en.wikipedia.org/wiki/Out-of-band">out-of-band</a> changes. If
  745. the filesystems are changed outside mergerfs there is a risk of files
  746. which have been removed continuing to show as available. It will fail
  747. gracefully if a phantom file is actioned on in some way so there is
  748. little risk in setting the value much higher. Especially if there are
  749. no out-of-band changes.</p>
  750. <h2 id="cachenegative_entry">cache.negative_entry</h2>
  751. <ul>
  752. <li><code>cache.negative_entry=UINT</code>: Sets the number of seconds to cache
  753. negative entry queries. Defaults to <code>1</code>.</li>
  754. </ul>
  755. <p>This is a cache for negative entry query responses. Such as when a
  756. file which does not exist is referenced.</p>
  757. <p>The risk of setting this value, as with most any cache, is related to
  758. <a href="https://en.wikipedia.org/wiki/Out-of-band">out-of-band</a> changes. If
  759. the filesystems are changed outside mergerfs there is a risk of files
  760. which have been added outside mergerfs not appearing correctly till
  761. the cache entry times out if there had been a request for the same
  762. name within mergerfs which didn't exist. This is mostly an
  763. inconvenience.</p>
  764. <h2 id="cacheattr">cache.attr</h2>
  765. <ul>
  766. <li><code>cache.attr=UINT</code>: Sets the number of seconds to cache file
  767. attributes. Defaults to <code>1</code>.</li>
  768. </ul>
  769. <p>This is a cache for file attributes and metadata such as that which is
  770. collected by the
  771. <a href="https://man7.org/linux/man-pages/man2/stat.2.html">stat</a> system call
  772. which is used when you run commands such as <code>find</code> or <code>ls -lh</code>. </p>
  773. <p>As with other caches the risk of enabling the attribute cache is if
  774. changes are made to the file out-of-band there could be
  775. inconsistencies between the actual file and the cached details which
  776. could result in different issues depending on how the data is used. If
  777. the simultaneous writing of a file from inside and outside is unlikely
  778. then you should be safe. That said any simultaneous, uncoordinated
  779. manipulation of a file can lead to unexpected results.</p>
  780. <h2 id="cachestatfs">cache.statfs</h2>
  781. <ul>
  782. <li><code>cache.statfs=UINT</code>: Sets the number of seconds to cache <code>statfs</code>
  783. calls used by policies. Defaults to <code>0</code>.</li>
  784. </ul>
  785. <p>A number of policies require looking up the available space of the
  786. branches being considered. This is accomplished by calling
  787. <a href="https://man7.org/linux/man-pages/man2/statfs.2.html">statfs</a>. This
  788. call however is a bit expensive so this cache reduces the overhead by
  789. limiting how often the calls are actually made.</p>
  790. <p>This will mean that if the available space of branches changed
  791. somewhat rapidly there is a risk of <code>create</code> or <code>mkdir</code> calls made
  792. within the timeout period ending up on the same branch. This however
  793. should even itself out over time.</p>
  794. <h2 id="cachesymlinks">cache.symlinks</h2>
  795. <ul>
  796. <li><code>cache.symlinks=BOOL</code>: Enable kernel caching of symlink
  797. values. Defaults to <code>false</code>.</li>
  798. </ul>
  799. <p>As of Linux v4.20 there is an ability to cache the value of symlinks
  800. so that the kernel does not need to make a request to mergerfs every
  801. single time a
  802. <a href="https://man7.org/linux/man-pages/man2/readlink.2.html">readlink</a>
  803. request is made. While not a common usage pattern, if software very
  804. regularly queries symlink values, the use of this cache could
  805. significantly improve performance.</p>
  806. <p>mergerfs will not error if the kernel used does not support symlink
  807. caching.</p>
  808. <p>As with other caches the main risk in enabling it is if you are
  809. manipulating symlinks from both within and without the mergerfs
  810. mount. Should the value be changed outside of mergerfs then it will
  811. not be reflected in the mergerfs mount till the cached value is
  812. invalidated.</p>
  813. <h2 id="cachereaddir">cache.readdir</h2>
  814. <ul>
  815. <li><code>cache.readdir=BOOL</code>: Enable kernel caching of readdir
  816. results. Defaults to <code>false</code>.</li>
  817. </ul>
  818. <p>As of Linux v4.20 it supports readdir caching. This can have a
  819. significant impact on directory traversal. Especially when combined
  820. with entry (<code>cache.entry</code>) and attribute (<code>cache.attr</code>) caching. If
  821. the kernel doesn't support readdir caching setting the option to true
  822. has no effect. This option is configurable at runtime via xattr
  823. user.mergerfs.cache.readdir.</p>
  824. <h2 id="cachewriteback">cache.writeback</h2>
  825. <ul>
  826. <li><code>cache.writeback=BOOL</code>: Enable writeback cache. Defaults to <code>false</code>.</li>
  827. </ul>
  828. <p>When <code>cache.files</code> is enabled the default is for it to perform
  829. writethrough caching. This behavior won't help improve performance as
  830. each write still goes one for one through the filesystem. By enabling
  831. the FUSE writeback cache small writes <em>may</em> be aggregated by the
  832. kernel and then sent to mergerfs as one larger request. This can
  833. greatly improve the throughput for apps which write to files
  834. inefficiently. The amount the kernel can aggregate is limited by the
  835. size of a FUSE message. Read the fuse_msg_size section for more
  836. details.</p>
  837. <p>There is a side effect as a result of enabling writeback
  838. caching. Underlying files won't ever be opened with O_APPEND or
  839. O_WRONLY. The former because the kernel then manages append mode and
  840. the latter because the kernel may request file data from mergerfs to
  841. populate the write cache. The O_APPEND change means that if a file is
  842. changed outside of mergerfs it could lead to corruption as the kernel
  843. won't know the end of the file has changed. That said any time you use
  844. caching you should keep from writing to the same file outside of
  845. mergerfs at the same time.</p>
  846. <p>Note that if an application is properly sizing writes then writeback
  847. caching will have little or no effect. It will only help with writes
  848. of sizes below the FUSE message size (128K on older kernels, 1M on
  849. newer). Even then its effectiveness might not be great. Given the side
  850. effects of enabling this feature it is recommended that its benefits
  851. be proved out with benchmarks.</p>
  852. <div class="footnote">
  853. <hr />
  854. <ol>
  855. <li id="fn:1">
  856. <p>This is not unique to mergerfs and affects all FUSE
  857. filesystems. It is something that the FUSE community hopes to
  858. investigate at some point but as of early 2025 there are a number
  859. of major reworking going on with FUSE which needs to be finished
  860. first.&#160;<a class="footnote-backref" href="#fnref:1" title="Jump back to footnote 1 in the text">&#8617;</a></p>
  861. </li>
  862. <li id="fn:2">
  863. <p><a href="https://kernelnewbies.org/Linux_6.6#FUSE">https://kernelnewbies.org/Linux_6.6#FUSE</a>&#160;<a class="footnote-backref" href="#fnref:2" title="Jump back to footnote 2 in the text">&#8617;</a></p>
  864. </li>
  865. </ol>
  866. </div>
  867. </article>
  868. </div>
  869. <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
  870. </div>
  871. <button type="button" class="md-top md-icon" data-md-component="top" hidden>
  872. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg>
  873. Back to top
  874. </button>
  875. </main>
  876. <footer class="md-footer">
  877. <nav class="md-footer__inner md-grid" aria-label="Footer" >
  878. <a href="../rename_and_link/" class="md-footer__link md-footer__link--prev" aria-label="Previous: rename and link">
  879. <div class="md-footer__button md-icon">
  880. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
  881. </div>
  882. <div class="md-footer__title">
  883. <span class="md-footer__direction">
  884. Previous
  885. </span>
  886. <div class="md-ellipsis">
  887. rename and link
  888. </div>
  889. </div>
  890. </a>
  891. <a href="../readahead/" class="md-footer__link md-footer__link--next" aria-label="Next: readahead">
  892. <div class="md-footer__title">
  893. <span class="md-footer__direction">
  894. Next
  895. </span>
  896. <div class="md-ellipsis">
  897. readahead
  898. </div>
  899. </div>
  900. <div class="md-footer__button md-icon">
  901. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11z"/></svg>
  902. </div>
  903. </a>
  904. </nav>
  905. <div class="md-footer-meta md-typeset">
  906. <div class="md-footer-meta__inner md-grid">
  907. <div class="md-copyright">
  908. Made with
  909. <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
  910. Material for MkDocs
  911. </a>
  912. </div>
  913. </div>
  914. </div>
  915. </footer>
  916. </div>
  917. <div class="md-dialog" data-md-component="dialog">
  918. <div class="md-dialog__inner md-typeset"></div>
  919. </div>
  920. <script id="__config" type="application/json">{"base": "../..", "features": ["content.action.edit", "content.action.view", "content.code.copy", "content.code.select", "navigation.footer", "navigation.instant", "navigation.instant.prefetch", "navigation.path", "navigation.top", "navigation.tracking", "optimize", "search.share", "toc.follow"], "search": "../../assets/javascripts/workers/search.f8cc74c7.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
  921. <script src="../../assets/javascripts/bundle.c8b220af.min.js"></script>
  922. </body>
  923. </html>