best-effort extent-same
A fixed-size fingerprint book. When the book is full, bees still runs — it just forgets older chunks and dedupes less well.
bees walks the Btrfs pool in the background whenever ENABLE_BEES=1. It is not a nightly cron. Identical extents (near-duplicate GGUFs, HF blobs, Pinokio trees) start sharing disk.
| Hash table | When |
|---|---|
| 1G | Small experiments only |
| 2G | Default for multi-terabyte AI pools |
| 4G | Only if 2G stays nearly full after a full re-crawl; ~4 GiB sticky RAM, no swap |
Unraid parity checks do not fill beeshash.dat. Occupancy near 100% means bees is forgetting old fingerprints, not that the NVMe pool is out of space.
ALLOW_FORMAT=0 and FORCE_FORMAT=0.beeshash.dat and beescrawl.dat.truncate -s 2G beeshash.dat — a fresh empty file. Do not enlarge a live 1G table in place.BEES_HASH_SIZE=2G in .env.docker exec fast-models pgrep -a bees ls -lh /mnt/user/appdata/fast-models/bees/beeshash.dat docker exec fast-models sh -c 'grep -E "cells occupied|Uptime" /var/lib/bees/beesstats.txt'
Optional deeper pass (IO-heavy; bees remains the everyday tool):
docker exec fast-models duperemove -r -d -h /ai-data/models docker exec fast-models compsize /ai-data/models 2>/dev/null || true
Keep BEES_THREADS=1 on ~32 GiB hosts unless you clearly have spare capacity. Upstream: Zygo/bees. Markdown twin: docs/BEES_HASH_SIZING.md. Grafana import + sample screenshots: observability.html.