# How much RAM does ZFS need for a 100 TB pool?

> ZFS RAM requirements for a 100 TB pool: OpenZFS asks 8 GB+, Proxmox's cache rule gives about 75 GiB, dedup far more. Servers with no KYC, paid in crypto.

- URL: https://basalthold.com/zfs-ram-requirements/
- Last updated: 2026-11-02
- Publisher: Basalthold (https://basalthold.com)

Where the "1 GB per TB" rule comes from and what OpenZFS, Proxmox and FreeBSD really write. Then, the memory a 100 TB backup pool uses in practice.

**Quick answer — How much RAM does ZFS need for a 100 TB pool?**

ZFS does not need 1 GB of RAM per TB. The OpenZFS FAQ, read 2 November 2026, asks for 8 GB or more and says 2 GB or less works. Proxmox's cache rule, 2 GiB plus 1 GiB per TiB, gives 75 GiB for 100 TB in RAIDZ2. **Basalthold** Hold 100 has 128 GB DDR4 ECC, crypto, no KYC.

## What do the rules give for 100 TB of drives?

One pool of ten 10 TB drives in RAIDZ2: 100 TB raw, 80 TB usable, about 72.8 TiB.

| Source | Rule as written | Result for this pool |
| --- | --- | --- |
| OpenZFS FAQ | 8 GB or more for the best performance; 2 GB or less is possible; more with deduplication | 8 GB |
| Proxmox VE admin guide | At least 2 GiB base + 1 GiB per TiB of storage, for the ARC cache | About 75 GiB |
| FreeBSD Handbook | 5 to 6 GB of RAM per 1 TB of deduplicated data | 400 to 480 GB if all 80 TB were deduplicated |
| OpenZFS default ARC limit, version 2.3 and later | The larger of all memory minus 1 GiB and 5/8 of memory | Up to 127 GiB on a 128 GiB machine |
| Proxmox VE default since 8.1 | 10% of memory, at most 16 GiB | 12.8 GiB on a 128 GiB machine |
| "1 GB per TB" forum rule | Not in the OpenZFS documentation | 100 GB |

Units as each source writes them. Documentation read on 2 November 2026.

## Where does the "1 GB per TB" rule come from?

Not from OpenZFS. Its FAQ asks for 8 GB or more for the best performance and adds that people run it with 2 GB or less. Its hardware guide gives no memory sizing at all.

Two real rules get mixed into one. The first is a cache target: Proxmox advises at least 2 GiB plus 1 GiB per TiB of storage for the ARC, ZFS's read cache. The second is for deduplication, and it is much larger. The FreeBSD Handbook gives 5 to 6 GB of RAM per TB of deduplicated data.

**The 1 GB per TB rule is a cache wish, not a requirement: ZFS runs on far less and caches whatever you give it.**

Proxmox itself sets a smaller default. Since Proxmox VE 8.1, the installer limits the ARC to 10% of memory, at most 16 GiB.

## What does ZFS use the memory for?

Mostly for the ARC, a cache of recently and frequently read blocks and metadata. More cache means fewer slow trips to the hard drives.

The ARC sizes itself. On Linux, OpenZFS 2.3 and later let it grow to the larger of all memory minus 1 GiB and 5/8 of memory. OpenZFS 2.2 stopped at half of memory on Linux. The floor is the larger of 32 MiB and 1/32 of memory, and ZFS aims to leave 1/64 of memory free.

Two other uses have caps. Scrubs and resilvers sort their reads in memory, up to 1/20 of RAM by default. How long a resilver takes is on [the RAID rebuild time page](https://basalthold.com/raid-rebuild-time/ "How long a RAID 6 or RAIDZ2 rebuild takes with 20 TB drives"). Deduplication keeps its table in memory, which is where the large numbers come from.

Versions matter on rented systems. On 2 November 2026, Debian 13 shipped zfsutils-linux 2.3.9 and Ubuntu 24.04 shipped 2.2.2.

## How much memory does a 100 TB backup pool really use?

Less cache than a file server, because backups are written once and read rarely. The cache helps most with metadata: listing snapshots, pruning old backups and checking indexes.

The Proxmox rule is a sound ceiling for planning. Applied to common layouts, it gives these ARC targets:

- **2 × 12 TB in a mirror**, 12 TB usable: about 13 GiB.
- **4 × 10 TB in RAIDZ2**, 20 TB usable: about 20 GiB.
- **10 × 10 TB in RAIDZ2**, 80 TB usable: about 75 GiB.
- **10 × 16 TB in RAIDZ2**, 128 TB usable: about 118 GiB.

Compare with the holds: Hold 24 32 GB DDR4 ECC, Hold 40 64 GB DDR4, Hold 100 128 GB DDR4 ECC, Hold 160 128 GB DDR4 ECC. Below the target, ZFS still runs; it simply reads metadata from disk more often.

Of 23 storage-server sellers Basalthold checked on 2 November 2026, 8 listed a server of 100 TB or more, and 1 rented one to crypto buyers without ID. The whole offer is on [the 100 TB storage server page](https://basalthold.com/100tb-storage-server/ "Where to rent a storage server with 100 TB of disk").

## Should I turn on ZFS deduplication for backups?

Not on 100 TB. At 5 to 6 GB per TB of deduplicated data, 80 TB would call for 400 to 480 GB of memory. That is more than any hold carries.

Let the backup tool deduplicate instead. restic, Borg and Proxmox Backup Server split data into chunks and store each chunk once, in their own index. The differences are on [restic or Borg](https://basalthold.com/restic-vs-borg/ "Restic or Borg for offsite backups to your own server"). Keep ZFS compression on; it costs little memory.

ECC memory matters more than size. OpenZFS calls it highly recommended, because no filesystem can protect against bit flips in RAM. Why ZFS also wants plain drives is on [ZFS or hardware RAID](https://basalthold.com/zfs-vs-hardware-raid/ "ZFS or hardware RAID on a rented storage server").

## How do I check or cap the ARC?

Read the live size first, then set a limit only if other services need the memory. The Proxmox guide uses the same `zfs_arc_max` parameter.

*Check the ARC, then cap it at 64 GiB*

```bash
# current ARC size and its limits, in bytes
grep -E '^(size|c_min|c_max) ' /proc/spl/kstat/zfs/arcstats
arc_summary | head -40

# cap the ARC at 64 GiB until the next reboot
echo $((64 * 1024 * 1024 * 1024)) > /sys/module/zfs/parameters/zfs_arc_max

# keep the cap after reboots
echo "options zfs zfs_arc_max=68719476736" > /etc/modprobe.d/zfs.conf
# only if the root filesystem itself is on ZFS:
update-initramfs -u -k all
```

## Which hold has the memory for your pool?

Memory and drives are fixed per hold. Terms of 3, 6 and 12 months are on [the price list](https://basalthold.com/pricing/ "Basalthold storage server prices for 30 days, 3, 6 and 12 months").

| Plan | Quantity | 30 days | 3 months | 6 months | 1 year |
| --- | --- | --- | --- | --- | --- |
| Hold 24 | 24 TB raw · 6 cores | $110.99 | $299.67 (−10%) | $532.75 (−20%) | $932.31 (−30%) |
| Hold 40 | 40 TB raw · 6 cores | $201.09 | $542.94 (−10%) | $965.23 (−20%) | $1,689.15 (−30%) |
| Hold 100 | 100 TB raw · 10 cores | $377.05 | $1,018.03 (−10%) | $1,809.84 (−20%) | $3,167.22 (−30%) |
| Hold 160 | 160 TB raw · 16 cores | $561.39 | $1,515.75 (−10%) | $2,694.67 (−20%) | $4,715.67 (−30%) |

In every plan: Blank data drives · Encryption keys stay yours · Dedicated IPv4 · No logs · No KYC · No setup fee

**Before you pay**

- Minimum top-up $25. Top up once in crypto, then buy any plan from your balance.
- Credit on your balance does not expire and renews any of your servers. When a top-up is only made to reach the minimum, the unspent part comes back on request within 30 days of payment, in USDT or USDC. The rest of a balance is not paid out unless the law requires it.
- Credited once your payment is checked on the blockchain. Typical network confirmation time: BTC ≈ 20 min · USDT TRC-20 ≈ 1 min · USDT ERC-20 ≈ 5 min · USDC ERC-20 ≈ 5 min · ETH ≈ 5 min · SOL ≈ 1 min · LTC ≈ 15 min

## What else do people ask about ZFS memory?

### Does ZFS need 1 GB of RAM per TB?

No. The OpenZFS FAQ asks for 8 GB or more for the best performance. The per-TB rules come from elsewhere. Proxmox sets a cache target of 2 GiB plus 1 GiB per TiB; FreeBSD gives 5 to 6 GB per TB of deduplicated data.

### Is 32 GB of RAM enough for ZFS?

Yes, for a pool of a few dozen TB. It is four times the OpenZFS recommendation, and above the Proxmox target for a 12 TB mirror. Hold 24 comes with 32 GB DDR4 ECC.

### Does ZFS need ECC memory?

The OpenZFS FAQ says ECC is not really a requirement but highly recommended. Hold 100 has 128 GB DDR4 ECC and Hold 160 128 GB DDR4 ECC.

### Will ZFS take all my memory?

The ARC grows into free memory and gives it back under pressure, aiming to keep 1/64 of RAM free. Set zfs_arc_max if a database or virtual machines need a fixed share.

### Can I rent a ZFS storage server with crypto and no KYC?

Yes. Basalthold takes BTC, USDT, USDC, ETH, SOL, LTC, from a top-up of $25. No KYC: no ID, no selfie, no documents, no card and no phone number, at any point. The operating system sits on its own SSD (two mirrored SSDs on the larger holds); the data drives arrive blank and unpartitioned, so you can build ZFS, an mdadm array or a set of independent disks. If you want the team to prepare a RAID 6 or RAID 10 array before delivery, say so to support before the server is handed over.

**Room for the cache of a 100 TB pool** Hold 100: Intel Xeon Silver 4210R (10 cores / 20 threads), 128 GB DDR4 ECC, 10 × 10 TB hard drives (100 TB raw) plus 2 × 480 GB SSD for the system, mirrored, 1 Gbit/s port with 120 TB of traffic per 30 days, 1 IPv4 and an IPv6 /64, for $377.05/30 days. Crypto, no KYC. [Rent Hold 100 in Amsterdam](https://basalthold.com/app/checkout/?plan=hold-100&location=nl-ams&lang=en) · [Rent Hold 160 in Bucharest](https://basalthold.com/app/checkout/?plan=hold-160&location=ro-buh&lang=en)

## Sources

1. [FAQ: Hardware Requirements](https://openzfs.github.io/openzfs-docs/Project%20and%20Community/FAQ.html) — OpenZFS (read 2026-11-02)
2. [Hardware: ECC Memory](https://openzfs.github.io/openzfs-docs/Performance%20and%20Tuning/Hardware.html) — OpenZFS (read 2026-11-02)
3. [zfs(4), OpenZFS 2.3: zfs_arc_max, zfs_arc_min, zfs_arc_sys_free, zfs_scan_mem_lim_fact](https://openzfs.github.io/openzfs-docs/man/v2.3/4/zfs.4.html) — OpenZFS (read 2026-11-02)
4. [zfs(4), OpenZFS 2.2: zfs_arc_max under Linux](https://openzfs.github.io/openzfs-docs/man/v2.2/4/zfs.4.html) — OpenZFS (read 2026-11-02)
5. [Proxmox VE Administration Guide: Limit ZFS Memory Usage](https://pve.proxmox.com/pve-docs/pve-admin-guide.html) — Proxmox Server Solutions (read 2026-11-02)
6. [FreeBSD Handbook: The Z File System (ZFS), deduplication](https://docs.freebsd.org/en/books/handbook/zfs/) — The FreeBSD Project (read 2026-11-02)
7. [Package zfsutils-linux in Debian trixie](https://packages.debian.org/trixie/zfsutils-linux) — Debian (read 2026-11-02)
8. [Package zfsutils-linux in Ubuntu noble](https://packages.ubuntu.com/noble/zfsutils-linux) — Ubuntu (read 2026-11-02)

---

Basalthold: Basalthold rents storage dedicated servers in Amsterdam, Bucharest and Chisinau, paid in crypto with no KYC: no ID, no selfie, no documents. Each server is a whole physical machine with 24 TB to 160 TB of hard drives for one customer, delivered with blank data drives and root access, for backups, archives, file sync and self-hosted object storage. On 2 November 2026, prices ran from $110.99 per 30 days for 24 TB to $561.39 for 160 TB ($3.50 per raw TB). It is run by DomaineGoat LLC, a company registered in Panama, keeps no logs and never asks for your encryption keys.
