NAS SSD caching tools

Every NAS forum thread eventually asks the same question: does adding an SSD cache actually help? The honest answer is that it depends on whether your workload re-reads the same files often enough to warm the cache, and whether you can measure the hit ratio to prove it. Most people add the SSD, see no obvious change, and blame the hardware.

We rebuilt cache setups on three different NAS platforms this week to test what tooling actually helps. This article covers seven apps that either implement SSD caching, tune it, or measure whether it is doing anything useful. Pick the ones that match your NAS OS and your workload before spending on more flash.

What to look for in an SSD caching tool

The wrong caching setup makes writes slower and reads no faster. A few criteria separate useful tools from wishful thinking.

Quick comparison

App Best for Platforms Free plan Starting price/mo Rating
TrueNAS SCALE ZFS L2ARC + SLOG Linux (appliance) Full free Free (Enterprise available) 4.7
Unraid Cache pool for user shares Linux Trial About $50 one-time Basic 4.6
Synology DSM Consumer NAS SSD cache Synology hardware Bundled N/A (hardware) 4.5
OpenZFS CLI Fine control over caching Linux, macOS, FreeBSD Full free Free 4.6
bcachefs Modern block caching Linux 6.7+ Full free Free 4.2
LVM Cache Existing Linux block layer Linux Full free Free 4.1
Netdata Cache hit-ratio monitoring Linux, macOS, Windows Free tier About $5/mo Cloud 4.6

The apps

1. TrueNAS SCALE — Best for ZFS-based caching with a GUI

TrueNAS SCALE exposes both L2ARC (read cache) and SLOG (synchronous write log) as first-class GUI operations. Add an NVMe device, assign it to a pool, and the ARC statistics show up in the dashboard. The hit-ratio graph tells you within a day whether the cache is worth the slot.

Persistent L2ARC survives reboots since OpenZFS 2.0, so the warmup problem is gone. SCALE ships with sensible defaults for metadata-heavy vs data-heavy workloads.

Where it falls short: L2ARC needs enough ARC (main RAM cache) to track it. Undersized RAM makes L2ARC counterproductive. Rule of thumb: 1GB RAM per 40GB L2ARC.

Pricing:

Platforms: Linux (runs as a dedicated appliance OS)

Download: TrueNAS SCALE

Bottom line: The default choice if you want ZFS caching without editing config files. Pick metadata-only L2ARC for small SSDs, dedicated SLOG mirror for write-heavy sync workloads.

2. Unraid — Best for user-share cache pools

Unraid does caching differently: instead of block-level cache, it uses fast SSDs as a landing zone for writes that a scheduled mover later flushes to the array. Read caching happens implicitly because recently-written files stay on the cache until the mover runs.

The 7.x release added multiple named cache pools, so you can dedicate one NVMe to appdata (Docker containers), another to VM images, and another to media writes.

Where it falls short: Not a true read cache for cold data. Files not written recently and not in appdata don’t benefit. Cache pool losses can lose in-flight writes if not mirrored.

Pricing:

Platforms: Linux (dedicated appliance)

Download: Unraid

Bottom line: Best for Docker and VM users. The named-pool model means each workload gets its own cache slot, which avoids the “cache is full of one thing” problem.

3. Synology DSM — Best consumer NAS caching

DSM on any Synology with M.2 slots supports SSD read cache and read-write cache out of the box. The Storage Manager wizard walks through creating a metadata-only cache (small SSDs, big impact on directory operations) or a full data cache (larger SSDs, helps repeated reads).

The Cache Advisor tool watches your workload for a week and tells you whether adding cache would actually help before you buy the SSD.

Where it falls short: Locked to Synology drives on some models (DSM 7.2+). Cache Advisor is only accurate if your workload during the test week matches your normal usage.

Pricing:

Platforms: Synology NAS hardware

Download: Included with Synology DSM

Bottom line: If you already own a Synology with M.2 slots, run the Cache Advisor before spending money. It saves the “$100 SSD did nothing” trap.

4. OpenZFS CLI — Best for fine-grained control

For anything TrueNAS’s GUI abstracts away, the OpenZFS command line lets you tune manually. arc_summary prints the ARC hit ratio, zpool iostat -v shows per-vdev latency, and zfs get all exposes every tunable including l2arc_write_max, l2arc_write_boost, and l2arc_headroom.

For metadata-only L2ARC, set secondarycache=metadata on the dataset. The cache uses about 10% of the space a full data cache would need for the same working set.

Where it falls short: Steep learning curve. Wrong tunings can hurt performance more than no cache at all.

Pricing:

Platforms: Linux, macOS, FreeBSD, illumos

Download: OpenZFS

Bottom line: Use this for the last 10% of tuning after TrueNAS or DSM does the first 90%.

5. bcachefs — Best modern block caching on Linux

bcachefs merged into the Linux kernel in 6.7 and offers a caching model closer to ZFS but built on modern Linux primitives. You can assign SSDs and HDDs to a filesystem and let bcachefs promote hot data to fast storage automatically, per-file if you set the flag.

Replication and compression are per-file too, which is useful for a NAS with mixed workloads (backup archives compressed and cached less aggressively than daily working files).

Where it falls short: Newer than ZFS, so the recovery tooling is thinner. Community NAS distros (TrueNAS, Unraid) don’t officially support it yet.

Pricing:

Platforms: Linux 6.7 and later

Download: bcachefs

Bottom line: Pick this if you build your own NAS from stock Linux and want tiered storage without ZFS’s memory demands. Wait a year if you want appliance-level stability.

6. LVM Cache — Best for existing LVM setups

LVM cache turns an existing SSD into a writeback or writethrough cache in front of a slower LVM volume. It uses dm-cache under the hood and integrates with whatever filesystem sits on top.

For a Debian or Ubuntu NAS that already uses LVM for volume management, adding a cache is three commands. No filesystem rebuild needed.

Where it falls short: No built-in monitoring GUI. Cache hit ratio requires reading /proc or dmsetup output. Writeback mode risks data loss on cache failure.

Pricing:

Platforms: Linux

Download: Included with LVM2

Bottom line: Best pick for a stock Linux NAS that already uses LVM. Skip if you run ZFS or Btrfs; those have native caching.

7. Netdata — Best for measuring whether the cache actually helps

Netdata monitors ZFS ARC hit ratio, L2ARC hit ratio, dm-cache metrics, bcache stats, and Btrfs statistics in a single dashboard. It samples per-second and stores months of history.

If you added an SSD cache to your NAS and cannot tell whether it helps, install Netdata. Within a day you have a graph that says exactly how often the cache serves reads instead of the underlying disk.

Where it falls short: Free tier is per-node; multi-node monitoring wants Netdata Cloud (still free for personal). Learning curve on which of the many charts matter.

Pricing:

Platforms: Linux, macOS, Windows, FreeBSD

Download: Netdata

Bottom line: Install this on any NAS with a cache. The hit-ratio number tells you within 48 hours whether the cache is worth keeping.

How to pick the right one

If you want the simplest option: Synology or TrueNAS SCALE. Both handle L2ARC and cache pools through a GUI without config files.

If you need maximum tuning: OpenZFS CLI on FreeBSD or Linux, layered on top of TrueNAS for the GUI where possible.

If you are on a budget: LVM cache on stock Ubuntu Server with a small NVMe. Free, no license, works with any hardware.

If you are a power user who wants tiered storage: bcachefs. Newest, most flexible, least battle-tested.

If you already tried adding a cache and it didn’t help: install Netdata first before buying another SSD. The metrics usually show the working set is already in RAM, or the workload doesn’t re-read.

FAQ

What is the best free NAS SSD caching setup? TrueNAS SCALE for a full appliance experience, LVM cache for a DIY Linux NAS. Both are free with no license required.

Does adding an SSD cache always speed up a NAS? No. If your workload writes once and never re-reads, or reads a working set that already fits in RAM, cache does nothing. Measure with Netdata or ZFS ARC stats for a week before spending.

Should I use read cache or read-write cache? Read cache is safe and cheaper. Read-write cache needs mirroring (two SSDs) to survive a device failure. Unless you have specific write-latency needs, start with read.

How much SSD do I need for L2ARC? Rule of thumb: 5 to 10 times your active working set. For metadata-only L2ARC, 1 to 2% of your total pool size is enough. Oversized L2ARC wastes cache management overhead.

Which NAS caching apps work with Btrfs? Btrfs has no native SSD caching. Use LVM cache or dm-cache underneath the Btrfs volume, and monitor with Netdata’s dm-cache module.

Do SSD caches wear out fast? Write caches wear fastest, especially SLOG on ZFS. Pick enterprise SSDs with high TBW rating and monitor endurance with smartctl or Netdata. Read caches wear at normal rates.