BTRFS Snapshots consume over 800 GiB?

Image attached. Not sure if it’s backing up more than it should or i I have too many snapshots or what. I don’t want to mess with it as I’m not sure what’s okay and what isn’t

My root drive is 2 TB, I do have other drives so I’m not in a rush (not running out of space soon) but this is nearing half the capacity of my main drive

Are they supposed to be 80 GiB each?

System:
Kernel: 6.18.8-zen2-1-zen arch: x86_64 bits: 64 compiler: gcc v: 15.2.1
clocksource: tsc avail: hpet,acpi_pm
parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
root=UUID=4b50f2bb-29e3-46db-902d-6f9025f83b73 rw rootflags=subvol=@
nvidia_drm.modeset=1
Desktop: KDE Plasma v: 6.5.5 tk: Qt v: N/A wm: kwin_wayland with: krunner
dm: SDDM Distro: Garuda base: Arch Linux
Machine:
Type: Desktop System: ASUS product: N/A v: N/A serial: N/A
Mobo: ASUSTeK model: ROG CROSSHAIR VIII DARK HERO v: Rev X.0x
serial:  part-nu: SKU uuid: dccab955-4204-f11a-eeb3-04421af1eeb2
Firmware: UEFI vendor: American Megatrends v: 5101 date: 07/31/2025
Battery:
Device-1: hidpp_battery_0 model: Logitech MX Vertical Advanced Ergonomic
Mouse serial:  charge: 50% (should be ignored) rechargeable: yes
status: N/A
CPU:
Info: model: AMD Ryzen 9 5900X socket: AM4 bits: 64 type: MT MCP
arch: Zen 3+ gen: 3 level: v3 note: check built: 2022 process: TSMC n6 (7nm)
family: 0x19 (25) model-id: 0x21 (33) stepping: 0 microcode: 0xA201030
Topology: cpus: 1x dies: 1 clusters: 1 cores: 12 threads: 24 tpc: 2
smt: enabled cache: L1: 768 KiB desc: d-12x32 KiB; i-12x32 KiB L2: 6 MiB
desc: 12x512 KiB L3: 64 MiB desc: 2x32 MiB
Speed (MHz): avg: 3841 min/max: 567/4955 boost: enabled
base/boost: 3700/4950 scaling: driver: amd-pstate-epp governor: powersave
volts: 1.1 V ext-clock: 100 MHz cores: 1: 3841 2: 3841 3: 3841 4: 3841
5: 3841 6: 3841 7: 3841 8: 3841 9: 3841 10: 3841 11: 3841 12: 3841
13: 3841 14: 3841 15: 3841 16: 3841 17: 3841 18: 3841 19: 3841 20: 3841
21: 3841 22: 3841 23: 3841 24: 3841 bogomips: 177603
Flags-basic: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3
Vulnerabilities: 
Graphics:
Device-1: NVIDIA AD102 [GeForce RTX 4090] vendor: Micro-Star MSI
driver: nvidia v: 590.48.01 alternate: nouveau,nvidia_drm
non-free: 550-580.xx+ status: current (as of 2025-11) arch: Lovelace
code: AD1xx process: TSMC n4 (5nm) built: 2022+ pcie: gen: 4
speed: 16 GT/s lanes: 16 ports: active: DP-2,DP-3 off: HDMI-A-1
empty: DP-1 bus-ID: 0b:00.0 chip-ID: 10de:2684 class-ID: 0300
Display: unspecified server: X.Org v: 24.1.9 with: Xwayland v: 24.1.9
compositor: kwin_wayland driver: X: loaded: nvidia
unloaded: modesetting,nouveau alternate: fbdev,nv,vesa
gpu: nv_platform,nvidia,nvidia-nvswitch display-ID: :1 screens: 1
Screen-1: 0 s-res: 5120x1440 s-dpi: 96 s-size: 1355x381mm (53.35x15.00")
s-diag: 1408mm (55.42")
Monitor-1: DP-2 pos: left res: mode: 2560x1440 hz: 144 scale: 100% (1)
dpi: 109 size: 597x336mm (23.5x13.23") diag: 685mm (26.97") modes: N/A
Monitor-2: DP-3 pos: primary,right res: mode: 2560x1440 hz: 170
scale: 100% (1) dpi: 109 size: 597x336mm (23.5x13.23") diag: 685mm (26.97")
modes: N/A
API: EGL v: 1.5 hw: drv: nvidia platforms: device: 0 drv: nvidia device: 2
drv: swrast gbm: drv: nvidia surfaceless: drv: nvidia x11: drv: nvidia
inactive: wayland,device-1
API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: nvidia mesa v: 25.3.5-arch1.1
glx-v: 1.4 direct-render: yes renderer: NVIDIA GeForce RTX 4090/PCIe/SSE2
memory: 23.43 GiB
API: Vulkan v: 1.4.341 layers: 12 device: 0 type: discrete-gpu
name: NVIDIA GeForce RTX 4090 driver: nvidia v: 590.48.01
device-ID: 10de:2684 surfaces: N/A device: 1 type: cpu name: llvmpipe
(LLVM 21.1.6 256 bits) driver: mesa llvmpipe v: 25.3.5-arch1.1 (LLVM
21.1.6) device-ID: 10005:0000 surfaces: N/A
Info: Tools: api: clinfo, eglinfo, glxinfo, vulkaninfo
de: kscreen-console,kscreen-doctor gpu: corectrl, nvidia-settings,
nvidia-smi wl: wayland-info x11: xdpyinfo, xprop, xrandr
Audio:
Device-1: NVIDIA AD102 High Definition Audio vendor: Micro-Star MSI
driver: snd_hda_intel v: kernel pcie: gen: 4 speed: 16 GT/s lanes: 16
bus-ID: 0b:00.1 chip-ID: 10de:22ba class-ID: 0403
Device-2: Advanced Micro Devices [AMD] Starship/Matisse HD Audio
vendor: ASUSTeK driver: snd_hda_intel v: kernel pcie: gen: 4 speed: 16 GT/s
lanes: 16 bus-ID: 0d:00.4 chip-ID: 1022:1487 class-ID: 0403
Device-3: Schiit Audio Modi 3+ driver: snd-usb-audio type: USB rev: 2.0
speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 1-2:2 chip-ID: 30be:1014
class-ID: 0102
Device-4: Logitech Yeti X driver: hid-generic,snd-usb-audio,usbhid
type: USB rev: 2.0 speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 5-4:3
chip-ID: 046d:0aaf class-ID: 0300 serial: 
API: ALSA v: k6.18.8-zen2-1-zen status: kernel-api with: aoss
type: oss-emulator tools: N/A
Server-1: sndiod v: N/A status: off tools: aucat,midicat,sndioctl
Server-2: PipeWire v: 1.4.10 status: n/a (root, process) with:
1: pipewire-pulse status: active 2: wireplumber status: active
3: pipewire-alsa type: plugin 4: pw-jack type: plugin
tools: pactl,pw-cat,pw-cli,wpctl
Network:
Device-1: Realtek RTL8125 2.5GbE vendor: ASUSTeK driver: r8169 v: kernel
pcie: gen: 2 speed: 5 GT/s lanes: 1 port: e000 bus-ID: 05:00.0
chip-ID: 10ec:8125 class-ID: 0200
IF: enp5s0 state: up speed: 1000 Mbps duplex: full mac: 
Device-2: Intel I211 Gigabit Network vendor: ASUSTeK driver: igb v: kernel
pcie: gen: 1 speed: 2.5 GT/s lanes: 1 port: d000 bus-ID: 06:00.0
chip-ID: 8086:1539 class-ID: 0200
IF: enp6s0 state: down mac: 
Device-3: Intel Wi-Fi 6 AX200 driver: iwlwifi v: kernel pcie: gen: 2
speed: 5 GT/s lanes: 1 bus-ID: 07:00.0 chip-ID: 8086:2723 class-ID: 0280
IF: wlp7s0 state: down mac: 
IF-ID-1: wg0-mullvad state: unknown speed: 10000 Mbps duplex: full
mac: N/A
Info: services: NetworkManager, smbd, systemd-timesyncd, wpa_supplicant
Bluetooth:
Device-1: Intel AX200 Bluetooth driver: btusb v: 0.8 type: USB rev: 2.0
speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 1-6:5 chip-ID: 8087:0029
class-ID: e001
Report: btmgmt ID: hci0 rfk-id: 0 state: up address:  bt-v: 5.2
lmp-v: 11 status: discoverable: no pairing: no class-ID: 6c0104
Drives:
Local Storage: total: 9.18 TiB used: 5.51 TiB (60.0%)
ID-1: /dev/nvme0n1 maj-min: 259:1 vendor: Samsung model: SSD 980 PRO 2TB
size: 1.82 TiB block-size: physical: 512 B logical: 512 B speed: 63.2 Gb/s
lanes: 4 tech: SSD serial:  fw-rev: 5B2QGXA7 temp: 52.9 C
scheme: GPT
SMART: yes health: PASSED on: 250d 19h cycles: 1,811
read-units: 5,063,910,903 [2.59 PB] written-units: 237,212,710 [121 TB]
ID-2: /dev/nvme1n1 maj-min: 259:0 vendor: Samsung model: SSD 980 PRO 2TB
size: 1.82 TiB block-size: physical: 512 B logical: 512 B speed: 63.2 Gb/s
lanes: 4 tech: SSD serial:  fw-rev: 5B2QGXA7 temp: 40.9 C
scheme: GPT
SMART: yes health: PASSED on: 1y 159d 19h cycles: 2,372
read-units: 221,232,070 [113 TB] written-units: 133,500,384 [68.3 TB]
ID-3: /dev/sda maj-min: 8:0 vendor: A-Data model: SU800 family: based SSDs
size: 1.86 TiB block-size: physical: 512 B logical: 512 B sata: 3.3
speed: 6.0 Gb/s tech: SSD serial:  fw-rev: 7A temp: 13 C
scheme: GPT
SMART: yes state: enabled health: PASSED on: 2y 49d 0h cycles: 2543
read: 21.92 TiB written: 28.76 TiB
ID-4: /dev/sdb maj-min: 8:16 vendor: A-Data model: SU800
family: based SSDs size: 1.86 TiB block-size: physical: 512 B logical: 512 B
sata: 3.3 speed: 6.0 Gb/s tech: SSD serial:  fw-rev: 7A temp: 34 C
scheme: GPT
SMART: yes state: enabled health: PASSED on: 1y 167d 9h cycles: 1793
read: 13.96 TiB written: 20.23 TiB
ID-5: /dev/sdc maj-min: 8:32 vendor: Seagate model: ST2000DM008-2FR102
family: BarraCuda 3.5 (SMR) size: 1.82 TiB block-size: physical: 4096 B
logical: 512 B sata: 3.1 speed: 6.0 Gb/s tech: HDD rpm: 7200
serial:  fw-rev: 0001 temp: 26 C scheme: GPT
SMART: yes state: enabled health: PASSED on: 14028h+33m+37.709s
cycles: 2473 read: 23.62 TiB written: 8.62 TiB Pre-Fail:
attribute: Spin_Retry_Count value: 100 worst: 100 threshold: 97
Partition:
ID-1: / raw-size: 1.82 TiB size: 1.82 TiB (99.89%) used: 1.53 TiB (84.1%)
fs: btrfs block-size: 4096 B dev: /dev/nvme0n1p2 maj-min: 259:7
ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
used: 10.3 MiB (3.4%) fs: vfat block-size: 512 B dev: /dev/nvme0n1p1
maj-min: 259:6
ID-3: /home raw-size: 1.82 TiB size: 1.82 TiB (99.89%)
used: 1.53 TiB (84.1%) fs: btrfs block-size: 4096 B dev: /dev/nvme0n1p2
maj-min: 259:7
ID-4: /var/log raw-size: 1.82 TiB size: 1.82 TiB (99.89%)
used: 1.53 TiB (84.1%) fs: btrfs block-size: 4096 B dev: /dev/nvme0n1p2
maj-min: 259:7
ID-5: /var/tmp raw-size: 1.82 TiB size: 1.82 TiB (99.89%)
used: 1.53 TiB (84.1%) fs: btrfs block-size: 4096 B dev: /dev/nvme0n1p2
maj-min: 259:7
Swap:
Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default) zswap: no
ID-1: swap-1 type: zram size: 62.7 GiB used: 2.85 GiB (4.5%) priority: 100
comp: zstd avail: lzo-rle,lzo,lz4,lz4hc,deflate,842 dev: /dev/zram0
Sensors:
System Temperatures: cpu: 50.0 C mobo: 33.0 C
Fan Speeds (rpm): cpu: 0
Info:
Memory: total: 64 GiB available: 62.7 GiB used: 17.02 GiB (27.2%)
Processes: 674 Power: uptime: 1h 56m states: freeze,mem,disk suspend: deep
avail: s2idle wakeups: 0 fails: 2 hibernate: platform avail: shutdown,
reboot, suspend, test_resume image: 24.99 GiB services: org_kde_powerdevil,
power-profiles-daemon, upowerd Init: systemd v: 259 default: graphical
tool: systemctl
Packages: 2391 pm: pacman pkgs: 2341 libs: 540 tools: octopi,paru,yay
pm: rpm pkgs: 0 pm: appimage pkgs: 0 pm: flatpak pkgs: 50 Compilers:
clang: 21.1.6 gcc: 15.2.1 Shell: Bash (sudo) v: 5.3.9 running-in: konsole
inxi: 3.3.40
Garuda (2.12.3-2):
System install date:     2024-06-08
Garuda release:          240428
Last full system update: 2026-02-11 ↻
Is partially upgraded:   No
Relevant software:       snapper NetworkManager dracut nvidia-utils nvidia-open-dkms garuda-hardware-profile-nvidia garuda-hardware-profile-standard garuda-hardware-profile-standard-x11
Windows dual boot:       Yes
Failed units:            proton.VPN.service systemd-suspend.service
— System Health Check Report —
26/26 checks run in 1.75 seconds ⌛
Powered by garuda-health 🦅

— CRITICAL —

Kernels in /boot are invalid (do not match expected files) (fix available)

— LOW —

Failed systemd services found: proton.VPN.service, systemd-suspend.service

“Garuda” is not the current bootloader: 


PackageKit is currently installed. PackageKit (Discover, GNOME Software) is not a supported method to manage packages on Garuda Linux. 
 (fix available)

— INFO —

A reboot is pending (update applied since last reboot)

Run garuda-health --fix to apply fixes.

You can’t use a tool like that to see snapshot size. It will show you the full size of the snapshot, not how much disk space it is using.

Meaning your filesystem was using 80GB when you took the snapshot. Not that it is using that much now. Snapshots only contain references to data blocks and only take up extra space for any data that is not in any other snapshot/subvolume.

4 Likes

Thanks, looking into this further. It appears the “apparent” space taken up by snapshots is drastically incorrect

1 Like

This is more a function of how the BTRFS filesystem works vs more “traditional” filesystems like ext4. Most storage usage utilities don’t do the btrfs calculation out of the box. For example, if you want a more accurate accounting of the actual usage “on disk” this command works well: btrfs fi us -T / (or this, which is the full command btrfs filesystem usage -T /). If you run it with sudo before you run the command, it will give you a complete, per-device usage as well.