On a test VM with SLES 12 SP1 with default btrfs setup I ran into a
situation with "no space left on device" on /var/...

As such a default setup will put together the whole installation on
one btrfs filesystem ...

/
/.snapshots
/var/tmp
/var/spool
/var/opt
/var/lib/named
/var/lib/mailman
/var/crash
/var/lib/pgsql
/usr/local
/tmp
/srv
/opt
/boot/grub2/x86_64-efi
/boot/grub2/i386-pc
/var/log

... neither df nor "btrfs filesystem df" will help you hunting the
space hogs, as all share one common pool.

I was able to ease the pressure by removing snapshots that snapper
created automatically:
https://www.suse.com/documentation/s...s_volfull.html

I would like to ask here if there is a good means to get an overview
where the btrfs file system usage actually comes.

In our case, /var/lib/docker with various docker images appears to be
the culprit, but even there, it seems to be hard to get a realistic
usage information: "du -ksh /var/lib/docker" is reporting far too much
(I think because of the btrfs layering employed by docker), and
"docker images" not enough to justify the usage.

A think a good idea might be relocating /var/lib/docker to a separate
partition out of scope of the btrfs default filesystem?

Thanks for sharing your opinions.

Regards, Tom