JuiceFS 缓存机制完全指南:元数据缓存、读写缓冲与数据缓存的原理与实践

发布时间:2026/9/14 22:11:38
JuiceFS 缓存机制完全指南:元数据缓存、读写缓冲与数据缓存的原理与实践 JuiceFS 缓存机制完全指南元数据缓存、读写缓冲与数据缓存的原理与实践【免费下载链接】juicefsJuiceFS is a distributed POSIX file system built on top of Redis and S3.项目地址: https://gitcode.com/GitHub_Trending/ju/juicefs导读JuiceFS 是一个基于对象存储与元数据数据库解耦架构的分布式 POSIX 文件系统在这种架构下缓存是本地客户端与远端服务高效交互的关键介质。本篇指南以 docs/en/guide/cache.md 为核心系统梳理 JuiceFS 的元数据缓存内核态 客户端内存态、读写缓冲buffer与数据缓存内核页缓存 本地磁盘缓存 写回缓存三大层次首先厘清各层缓存的一致性语义close-to-open 保证与例外再逐项讲解--attr-cache、--entry-cache、--open-cache、--buffer-size、--max-readahead、--prefetch、--cache-dir、--cache-size、--writeback等核心参数的作用、默认值与适用场景并给出基于源码与测试的调优建议。读完本文你将掌握 JuiceFS 缓存全貌能够针对随机读、顺序读、海量小文件写入等不同负载制定可落地的缓存配置与调优方案。一、为什么 JuiceFS 需要缓存架构与价值JuiceFS 将元数据保存在数据库如 Redis、SQL 等见 docs/en/reference/how_to_set_up_metadata_engine.md文件数据以数据块默认 4MiB形式存放在对象存储中。相比直接与远端服务交互缓存能显著降低存储操作的延迟并提升数据吞吐。为此 JuiceFS 提供了元数据缓存、数据读/写缓存等多层次机制。你的应用真的需要缓存吗数据缓存能有效提升随机读性能。对于高随机读性能要求的应用如 Elasticsearch、ClickHouse建议使用更快的存储介质并分配更多缓存空间。缓存只在反复读取同一文件时才有效果。如果确认数据只访问一次如 ETL 中的数据清洗场景可以安全地关闭缓存以避免额外开销。二、一致性理解缓存的前提分布式系统常在缓存与一致性之间权衡。由于 JuiceFS 的耦合解耦架构需要从三个层面分别思考一致性问题元数据、对象存储中的文件数据、本地文件数据缓存。2.1 元数据一致性默认配置提供close-to-open一致性保证客户端修改并关闭文件后其他客户端再次打开该文件时能看到最新状态。默认挂载使用 1 秒的内核元数据缓存由 FUSE 提供兼顾了常规场景的性能。发起修改的客户端挂载点本身享有更强的一致性详见下文 一致性例外。2.2 对象存储数据一致性客户端将文件切分为数据块默认 4MiB每块分配唯一 ID 后上传至对象存储。后续修改产生新的数据块原始数据块保持不变——一旦文件被修改客户端会从新数据块读取旧数据块则通过回收站或压缩合并compaction删除。这种写时复制的设计从根源上保证了对象存储数据的一致性。2.3 本地文件数据缓存一致性客户端读缓存本质是下载到本地磁盘的对象存储数据块一致性取决于磁盘可靠性。若数据被篡改客户端会读到坏数据。可选用合适的--verify-cache-checksum策略来校验数据完整性——该参数支持none、full、shrink、extend四档自 1.3 起默认extend对完全包含读范围的分片进行校验适合要求绝对数据完整性的随机读场景。三、元数据缓存作为用户态文件系统JuiceFS 的元数据缓存同时存在于两个层面内核缓存通过 FUSE API 管理与客户端内存缓存。3.1 内核元数据缓存Kernel Metadata CacheJuiceFS 客户端通过 FUSE 控制以下两类元数据的内核缓存属性attribute文件名、大小、权限、mtime 等条目entry / dir-entryinode、名称与类型。参数名中用entry与dir-entry进一步区分文件与目录。通过以下参数控制 TTL秒# 文件属性缓存 TTL秒默认 1提升 getattr 性能 --attr-cache1 # 文件条目缓存 TTL秒默认 1提升 lookup 性能 --entry-cache1 # 目录条目缓存 TTL秒默认 1提升 lookup 性能 --dir-entry-cache1 # 负查找返回 ENOENT缓存 TTL秒默认 0提升对不存在文件/目录的 lookup 性能 --negative-entry-cache1在参数实现上cmd/flags.go 中metaCacheFlags定义了这些选项默认值分别为1.0s、1.0sentry-cache依据 defaultEntryCache 计算、1.0snegative-entry-cache默认为空即 0禁用挂载时通过 cmd/mount_unix.go 中的utils.Duration(c.String(...))解析并写入 VFS 配置。此外 cmd/main.go 为老用户提供了兼容别名attrcacheto、entrycacheto、direntrycacheto。在内核中缓存这些元数据 1 秒能显著加速lookup与getattr调用。需要注意entry缓存是随文件访问逐步构建的可能不包含目录下的完整文件列表因此readdir调用或ls命令无法利用该缓存——entry缓存只提升lookup性能。这里的direntry与内核的目录项ext4 directory entry含义不同direntry并不告诉你目录下有哪些文件它与entry是同一概念仅按是否为目录加以区分。实际场景中极少需要为--entry-cache与--dir-entry-cache设置不同值这两个选项是为目录很少变化而文件频繁变化这类理论场景准备的此时可让--dir-entry-cache大于--entry-cache。内核版本低于 5.11 时negative-entry-cache可能导致分布式环境下并发先检查后创建操作如mkdir -p失败cmd/mount_unix.go 会对此给出告警。3.2 客户端内存元数据缓存Client Memory Metadata Cache当 JuiceFS 客户端open一个文件时其文件属性会被缓存在客户端内存中。这个属性缓存不仅包含内核缓存的属性大小、mtime还包含 JuiceFS 特有的信息例如文件与 chunk、slice 的映射关系。为维持默认的 close-to-open 一致性open调用总是查询元数据服务、绕过本地缓存——客户端 A 的修改不会立刻对客户端 B 可见但 A 关闭文件后所有客户端跨节点都能看到最新状态。注意文件属性缓存并非只能通过open获得例如tail -f会周期性查询属性此时无需重新打开文件即可获取最新状态。要利用内存元数据缓存使用--open-cache指定 TTL在缓存过期前getattr与open调用直接使用客户端内存中的 slice 信息省去每次查询元数据服务的开销。开启后由--open-cache-limit默认 10000软上限0 表示不限制控制最多缓存多少个打开的文件。需要强调的是开启--open-cache后JuiceFS 不再提供 close-to-open 一致性。与内核元数据缓存类似发起修改的客户端可以主动失效自己的内存缓存而其他客户端只能等待缓存过期——这正是--open-cache默认关闭0s的原因。对于读密集型或只读场景例如 AI 模型训练建议按需设置--open-cache以进一步提升读性能。3.3 一致性例外Consistency Exceptions上文讨论的元数据缓存针对的是多客户端场景可视为最小一致性保证。而发起文件修改的客户端由于修改发生在本地会享有更高的一致性发起修改的挂载点修改时内核缓存自动失效。但多个挂载点并发访问同一文件时内核缓存主动失效只对发起修改的客户端生效其他客户端只能等待缓存过期。删除后重建同名文件多个挂载点并发操作时若某客户端删除后重建同名文件其他客户端可能因内核 entry 缓存仍使用旧 inode导致找不到文件或读到旧内容若启用了回收站。这不属于传统 close-to-open 一致性语义因为文件已不是同一个对象只能等待 entry 缓存过期。write 调用完成 ≠ 提交write完成后当前挂载点立即可见文件长度变化如用ls -al观察到文件增长但这不代表修改已提交。在flush完成前修改不会反映到对象存储其他挂载点也无法看到最新写入。fsync、fdatasync、close都会触发flush从而持久化文件变更并使其对其他客户端可见。极端情况若write成功且观察到文件增长但最终flush失败例如文件系统使用量超过全局配额之前增长的文件大小会突然回落如从 10M 变为 0。这常被误解为JuiceFS 清空了文件实际是文件从未成功写入——当前挂载点看到的长度变化只是预览并非已提交状态。文件变更事件发起修改的挂载点可访问文件变更事件使用fswatch或 Watchdog 等工具监控。但范围仅限该挂载点内变更的文件即挂载点 A 修改的文件无法被挂载点 B 监控。FUSE 不支持 inotify API若想用 Watchdog 监控文件变更事件只能通过轮询方式如 Watchdog 的PollingObserver实现。四、读写缓冲Read/Write Buffer读写缓冲是分配给 JuiceFS 客户端的内存空间大小由--buffer-size控制默认 300MiB。读写数据都要经过该缓冲它对所有 I/O 操作至关重要——因此在大型场景下增大 buffer 往往是优化第一步。cmd/flags.go 中该参数以字符串形式定义默认300M在 cmd/mount.go 中通过utils.ParseBytes(c, buffer-size, M)解析为字节数。4.1 Readahead 与 Prefetch两种提前下载为准确描述 JuiceFS 客户端的内部机制文档用readahead与prefetch分别指代两种提前下载数据以提升读性能的行为。Readahead顺序读预读顺序读文件时客户端下载当前读偏移之前更准确说是当前偏移之后的数据。Linux 内核本身也有页缓存预读机制依据实际读行为动态确定预读窗口但 JuiceFS 是网络文件系统经典内核预读不足以带来理想性能提升因此 JuiceFS 在内核预读之上实现了更激进的自研预读算法根据读行为猜测预读窗口大小提前从对象存储下载数据。最大预读窗口由--max-readahead控制随机读场景可将其设为 0 以禁用预读。从源码看预读窗口采用倍增/减半的自适应策略pkg/vfs/reader.go 的checkReadahead在顺序读命中时使窗口翻倍ses.readahead * 2在读缓冲紧张或顺序度下降时减半ses.readahead / 2初始值从一块blockSize起步上限为--max-readahead配置值pkg/vfs/reader.go 还会限制预读最多占用 80% 的 buffer 以避免 OOM。Prefetch随机读预取预读只对顺序读有效因此还有另一套机制当某个数据块被小范围随机读取时整个块被异步调度下载。它假设文件某段被随机读取时相邻内容短期内也可能被读到。但这并不适用于所有应用——例如应用以极稀疏的方式读取大文件读偏移彼此相距很远此时 prefetch 毫无用处且会造成严重读放大。若已熟悉应用的访问模式并确认不需要预取可用--prefetch0禁用。prefetch 的实现位于 pkg/chunk/prefetch.goprefetcher以--prefetch指定的并行度默认 1异步抓取整块数据重复 key 会被去重合并配套测试见 pkg/chunk/prefetch_test.go。当缓存被禁用如--cache-size 0时客户端会自动关闭 prefetchpkg/chunk/cached_store.go。readahead 与 prefetch 在提升顺序读/随机读性能的同时会带来读放大详见故障诊断文档中的读放大一节。4.2 写缓冲Buffer Write成功的write不代表数据已持久化——这是flush的职责对本地文件系统与 JuiceFS 均成立。在 JuiceFS 中write只是把变更提交到缓冲从写挂载点视角看文件大小在变化但不要误以为已持久化与一致性例外行为一致。在flush真正完成前变更仅保存在客户端缓冲中。应用可显式调用flush即便不调用当待提交 slice 大小超过 chunk 边界、或在缓冲中等待达到一定时长时也会自动触发flush。结合前文 readahead 机制缓冲的整体行为可用下图描述缓冲为读写共享写优先级更高这暗示了写可能挤占读的可能当对象存储带宽不足以支撑写入负载时会发生拥塞如上图所示高写入负载使缓冲中积压大量待上传 slice留给 readahead 的空间所剩无几文件读取随之变慢上传速度过低时写操作还可能因flush超时而失败。4.3 观测与优化Buffer Observation缓冲对读写都至关重要因此在大型场景下--buffer-size是首要优化目标。但单纯增大 buffer 可能引发其他问题如上面的缓冲拥塞应结合其他性能选项综合决策。调整前建议先运行juicefs stats查看当前缓冲使用情况再按下述原则调优提升顺序读速度使用更大的--max-readahead与--buffer-size扩大预读窗口窗口内的数据块会被并发从对象存储拉取。注意读取单个大文件永远不会占满整个缓冲预读预留的空间约为总缓冲的 1/4 到 1/2。因此若juicefs stats显示buf已使用一半同时正在顺序读单个大文件就该增大--buffer-size以设置更大的预读窗口。提升写入速度若已提高--max-uploads默认 20仍不见上传流量增长可同时增大--buffer-size让并发线程更易为上传分配内存反之若调大--buffer-size未带来上传流量增长则应该提高--max-uploads。--max-uploads对 4M 写入已是相当高的并发值但 100K 左右的随机写在高负载下 20 并发可能不够需结合应用端合并小写。低带宽环境--buffer-size同时控制每次flush的数据上传量因此在低带宽客户端上可能需要调低--buffer-size以避免flush超时具体排查可参考对象存储连接问题。五、数据缓存Data Cache为提升性能JuiceFS 提供多种数据缓存机制内核页缓存、客户端宿主机本地文件缓存、客户端进程内的读写缓冲。读请求按内核页缓存 → 客户端进程缓冲 → 本地磁盘缓存的顺序逐层尝试若所有层级都未命中才从对象存储读取并异步写入各级缓存以加速下次访问。5.1 内核页缓存Kernel Page Cache内核会为打开的文件建立页缓存。若文件之后未被更新mtime 未变后续读取直接命中页缓存获得最佳性能。JuiceFS 客户端会跟踪最近打开的文件列表。文件再次被打开时客户端检查文件是否被修改以决定内核页缓存是否有效若已被修改下次 open 时会失效相关页缓存确保客户端总能读到最新数据。同文件的重复读在 JuiceFS 中可以极快——延迟可低至微秒级吞吐可达每秒数 GiB。5.2 内核 writeback-cache 模式FUSE Writeback Cache从 Linux 内核 3.15 起FUSE 支持 writeback-cache 模式内核会合并高频的随机小写10-100 字节请求显著提升其性能。但副作用是顺序写也会变成随机写损害顺序写性能因此仅建议在密集随机写场景使用。启用方式是在挂载 JuiceFS 时使用-o writeback_cache选项。注意writeback-cache 模式不等于下文客户端写数据缓存——前者是内核实现后者发生在 JuiceFS 客户端进程内两者适用场景不同。5.3 客户端读缓存Client Read Cache客户端会根据应用的读模式自动进行预取与缓存以提升顺序读性能。数据缓存在本地文件系统中可以是 HDD、SSD 甚至内存等任意本地存储设备。从对象存储下载的数据块、以及上传的小数据小于单个数据块会被 JuiceFS 客户端缓存不做压缩或加密。为提升应用首次读性能可用juicefs warmup预先缓存数据。未启用--writeback时若缓存目录所在文件系统异常JuiceFS 客户端可返回错误并降级为直连对象存储启用--writeback后若缓存目录文件系统异常且读操作卡住如某些内核态网络文件系统JuiceFS 也会一起卡住需要调优缓存目录底层文件系统使其快速失败。以下为缓存配置的核心参数完整参考见juicefs mount--prefetch并发预取 N 个块默认 1。预取指随机读取文件某块的一段后客户端异步下载整个对象存储块常能改善随机读性能。若场景无法有效利用预取数据如大文件随机稀疏读取预取会带来明显读放大可设为 0 禁用。此外客户端内部还有前文所述的 readahead 机制顺序读时提前下载邻近块其并发度受读写缓冲大小影响——缓冲越大并发越高。--cache-dir缓存目录默认/var/jfsCache或$HOME/.juicefs/cache详见缓存目录一节。若急需释放磁盘空间可手动删除缓存目录下cache-dir/UUID/raw/中的数据。--cache-size与--free-space-ratio缓存大小MiB默认 102400即 100G与最小剩余空间比例默认 0.1。两个参数都能控制缓存规模任一条件满足时客户端会用类似 LRU 的算法淘汰缓存移除较旧、较少使用的块。注意实际缓存大小可能超过配置值因为精确计算缓存占用的磁盘空间很困难——目前 JuiceFS 按最小 4KiB累计所有缓存对象大小常与du的结果不一致。淘汰算法的实现位于 pkg/chunk/cache_eviction.go支持none、2-random默认与lru1.4 新增三种策略可通过--cache-eviction切换2-random是随机抽取两个候选淘汰其一的高性价比策略LRU 基于 atime 最小堆实现。内存缓存模式暂不支持 LRU会自动回退到2-randompkg/chunk/cached_store.go。若想让某些缓存块永不淘汰可设--cache-evictionnone但请注意--cache-expire默认 0即永不过期会让超过设定时间未访问的块被自动清除即使--cache-eviction为none也会删除。--cache-partial-only只缓存小文件和随机小读不缓存整个块默认 false。适用场景是对象存储吞吐高于本地缓存设备顺序读通常要求高吞吐随机读要求低延迟当本地磁盘吞吐低于对象存储时开启该选项后顺序读不再缓存整块而只缓存小读如 Parquet / ORC 文件的 footer从而同时利用本地盘的低延迟与对象存储的高吞吐。5.4 客户端写数据缓存Client Write Cache启用客户端写缓存可提升海量小文件写入性能。客户端写缓存默认关闭写入数据暂存在读写缓冲内存中当 chunk 写满或应用调用close()/fsync()时上传到对象存储。为保证数据安全数据上传到对象存储之前客户端不会向元数据服务提交文件写入。这种默认的先上传、后提交流程在海量小文件场景表现不佳。启用客户端写缓存后写流程变为先提交、后异步上传文件写入不再被上传阻塞而是先写入本地缓存目录并提交给元数据服务随后立即返回缓存目录中的文件数据再异步上传到对象存储。若只需把 JuiceFS 当作临时存储不要求持久化与分布式访问可使用--upload-delay延迟上传——延迟期间被删除的文件将跳过上传节省资源同时相比本地磁盘缓存目录空间不足时 JuiceFS 会自动上传文件使应用远离意外故障。在挂载命令中添加--writeback即可启用客户端写缓存但该模式存在风险与注意事项磁盘可靠性关乎数据完整性写缓存数据在上传完成前丢失文件数据将永久丢失对数据可靠性要求高的场景务必谨慎。写缓存数据默认存放在/var/jfsCache/UUID/rawstaging/不要删除该目录下的文件否则数据会丢失。写缓存大小由--free-space-ratio控制。未启用写缓存时客户端最多使用缓存目录磁盘空间的 90%计算规则为(1 - free-space-ratio) * 100启用后允许超用一定比例计算规则为(1 - (free-space-ratio / 2)) * 100即默认最多使用缓存目录磁盘空间的 95%。写缓存与读缓存共享缓存磁盘空间互相影响写缓存占用过多读缓存规模就会被压缩反之亦然。若本地磁盘写速度低于对象存储上传速度启用--writeback反而会降低写性能。缓存目录文件系统报错时客户端会回退为同步直写对象存储行为与客户端读缓存一致。若对象存储上传速度过慢低带宽本地写缓存可能长时间无法上传完毕同时其他节点的读会超时报错I/O error参见对象存储连接问题。不恰当使用客户端写缓存容易引发问题因此官方仅建议在写入大量小文件时临时开启例如解压包含海量小文件的压缩包。启用--writeback后除了直接检查/var/jfsCache/UUID/rawstaging/还可以通过内部状态文件查看上传进度# 假设挂载点为 /jfs $ cd /jfs $ cat .stats | grep staging juicefs_staging_block_bytes 1621127168 # 待上传数据块的总大小 juicefs_staging_block_delay_seconds 46116860185.95535 juicefs_staging_blocks 394 # 待上传数据块的数量从源码看写缓存相关参数在 cmd/flags.go 中定义除--writeback外还包括--writeback-threshold-size1.4 新增仅小于该值的块才会被暂存本地默认 0 表示全部暂存、--upload-delay上传延迟时长、--upload-hours仅允许在一天中的指定时段上传延迟块格式为开始小时,结束小时如0,6表示 0:00–5:5923,3表示 23:00–次日 2:59。5.5 缓存目录Cache Directory根据操作系统不同JuiceFS 默认缓存路径如下Linux/var/jfsCachemacOS$HOME/.juicefs/cacheWindows%USERPROFILE%\.juicefs\cacheLinux 下默认缓存路径需要管理员权限普通用户需借助sudo挂载例如sudo juicefs mount redis://127.0.0.1:6379/1 /mnt/myjfs或者用--cache-dir指定当前系统可访问的任意存储路径。无/var权限的普通用户可把缓存设在HOME目录juicefs mount --cache-dir ~/jfscache redis://127.0.0.1:6379/1 /mnt/myjfs建议使用高性能专用磁盘作为缓存目录避免使用系统盘也不要与其他应用共享。共享不仅互相影响性能还可能引发其他应用报错如磁盘空间不足。若不可避免要共享必须预估其他应用所需磁盘容量、限制缓存空间大小见上文避免 JuiceFS 读缓存或写缓存占用过多空间。RAM Disk内存盘若需要更高的读性能可把缓存放到内存盘。Linux 下用df查看tmpfs文件系统$ df -Th | grep tmpfs tmpfs tmpfs 362M 2.0M 360M 1% /run tmpfs tmpfs 3.8G 0 3.8G 0% /dev/shm tmpfs tmpfs 5.0M 4.0K 5.0M 1% /run/lock其中/dev/shm是典型的内存盘通常为内存容量的一半可按需手动调整例如调整为 32GBsudo mount -o size32000M -o remount /dev/shm然后以该路径作为缓存挂载文件系统juicefs mount --cache-dir /dev/shm/jfscache redis://127.0.0.1:6379/1 /mnt/myjfs另一种使用内存做缓存的方式是把--cache-dir设为memory缓存直接放在客户端进程内存中比/dev/shm更简单但进程重启后缓存会丢失适合测试与评估。共享目录Shared Folders通过 SMB 或 NFS 创建的共享目录也可用作缓存。当 LAN 内多台设备挂载同一 JuiceFS 文件系统时用 LAN 共享目录作缓存路径可有效缓解多设备重复缓存的带宽压力。但需特别注意通常缓存目录所在文件系统异常时JuiceFS 客户端可立即返回错误并降级直连对象存储若共享目录异常表现为读操作卡住如某些内核态网络文件系统JuiceFS 也会一起卡住需要调优共享目录底层文件系统以实现快速失败。以 SMB/CIFS 为例用cifs-utils包提供的工具挂载共享目录sudo mount.cifs //192.168.1.18/public /mnt/jfscache将共享目录用作 JuiceFS 缓存sudo juicefs mount --cache-dir /mnt/jfscache redis://127.0.0.1:6379/1 /mnt/myjfs多缓存目录Multiple Cache DirectoriesJuiceFS 支持同时设置多个缓存目录用:Linux、macOS或;Windows分隔避免缓存空间不足sudo juicefs mount --cache-dir ~/jfscache:/mnt/jfscache:/dev/shm/jfscache redis://127.0.0.1:6379/1 /mnt/myjfs设置多个缓存目录或多个缓存盘时--cache-size表示所有缓存目录的数据总量。客户端用哈希策略将数据均匀写入各缓存路径无法针对容量或性能不同的多缓存盘做特殊调优。因此建议不同缓存目录/缓存盘的可用空间保持一致否则可能出现某个缓存目录空间无法充分利用的情况。例如--cache-dir为/data1:/data2其中/data1剩余 1GiB、/data2剩余 2GiB--cache-size为 3GiB、--free-space-ratio为 0.1由于写入策略是均匀写入每个缓存目录分配到的最大空间为3GiB / 2 1.5GiB导致/data2最多只有 1.5GiB 缓存空间而非2GiB * 0.9 1.8GiB。六、总结一份实用的缓存调优速查表目标场景关键参数建议高随机读Elasticsearch、ClickHouse--cache-size、--buffer-size用更快存储介质、分配更多缓存空间随机读可设--max-readahead0读密集型 / 只读AI 模型训练--open-cache、--open-cache-limit按需开启以跳过每次 open 的元数据查询注意一致性降级顺序读大文件--max-readahead、--buffer-size同时放大两者以扩大预读窗口juicefs stats中buf过半即应扩容稀疏随机读大文件--prefetch0关闭预取避免严重读放大海量小文件写入--writeback、--upload-delay、--upload-hours临时开启写回模式把先上传后提交改为先提交后异步上传可用--upload-delay跳过临时文件的无效上传本地盘吞吐低于对象存储--cache-partial-only只缓存小读如 Parquet/ORC footer兼顾本地盘低延迟与对象存储高吞吐低带宽环境--buffer-size、--max-uploads调低--buffer-size避免flush超时二者需配合调整多客户端共享缓存--cache-dir可用 SMB/NFS 共享目录或内存盘/dev/shm、memory多目录用:分隔并保持容量一致调优前务必用juicefs stats观测实际缓存使用情况并牢记各参数的默认值--buffer-size300MiB、--cache-size102400MiB、--free-space-ratio0.1、--prefetch1、--attr-cache/--entry-cache/--dir-entry-cache1秒、--open-cache0。缓存配置直接定义于 cmd/flags.go 的dataCacheFlags与metaCacheFlags完整的参数说明与默认值可查阅 docs/en/reference/_common_options.mdx 及juicefs mount命令参考。【免费下载链接】juicefsJuiceFS is a distributed POSIX file system built on top of Redis and S3.项目地址: https://gitcode.com/GitHub_Trending/ju/juicefs创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考