Closed jpluimers closed 6 years ago
Hi,
In btrfs-du
the sizes are directly reported by btrfs-tools, whereas in btrfs-size
the sizes are extracted with --raw
and then converted externally. This might be a source of error if the conversion is not performed perfectly.
My guess is that btrfs-du
sizes are more accurate just because of this: it is directly reported by btrfs-tools with no processing.
In any case, it would be interesting to double check. Could we see the output of
sudo btrfs quota enable /
sudo btrfs qgroup show --si /
, and
sudo btrfs subvolume list /
in your system? Let's notice the difference between using --si
and not using it. The difference is base 1000 vs base 1024
If you don't want quotas enabled, disable afterwards.
thanks
Here you go:
# btrfs quota enable /
# btrfs qgroup show --si /
qgroupid rfer excl
-------- ---- ----
0/5 16.38kB 16.38kB
0/257 1.90MB 1.90MB
0/258 4.68GB 141.92MB
0/259 2.49MB 2.49MB
0/260 16.38kB 16.38kB
0/261 40.20MB 40.20MB
0/262 499.71MB 499.71MB
0/263 2.85MB 2.85MB
0/264 266.24kB 266.24kB
0/265 16.38kB 16.38kB
0/266 32.77kB 32.77kB
0/267 37.65MB 37.65MB
0/268 16.38kB 16.38kB
0/269 343.04MB 343.04MB
0/270 16.38kB 16.38kB
0/271 90.11kB 90.11kB
0/272 90.11kB 90.11kB
0/274 0.00B 0.00B
0/797 16.38kB 16.38kB
0/1151 4.34GB 457.27MB
0/1152 4.35GB 17.58MB
0/1153 4.34GB 16.65MB
0/1154 4.67GB 47.59MB
0/1155 4.35GB 348.16kB
0/1156 4.35GB 688.13kB
0/1189 4.34GB 1.78MB
0/1190 4.35GB 2.42MB
0/1191 4.35GB 8.34MB
0/1195 4.70GB 66.04MB
0/1212 4.36GB 14.84MB
0/1216 4.43GB 64.61MB
0/1231 4.38GB 6.77MB
0/1232 4.69GB 15.94MB
255/274 0.00B 0.00B
255/797 16.38kB 16.38kB
# btrfs subvolume list /
ID 257 gen 1174947 top level 5 path .snapshots
ID 258 gen 1176351 top level 257 path .snapshots/1/snapshot
ID 259 gen 1165551 top level 5 path boot/grub2/i386-pc
ID 260 gen 1164831 top level 5 path boot/grub2/x86_64-efi
ID 261 gen 1170540 top level 5 path opt
ID 262 gen 1176336 top level 5 path srv
ID 263 gen 1176347 top level 5 path tmp
ID 264 gen 1174704 top level 5 path usr/local
ID 265 gen 1164831 top level 5 path var/crash
ID 266 gen 1165551 top level 5 path var/lib/mailman
ID 267 gen 1175896 top level 5 path var/lib/named
ID 268 gen 1164831 top level 5 path var/lib/pgsql
ID 269 gen 1176350 top level 5 path var/log
ID 270 gen 1164831 top level 5 path var/opt
ID 271 gen 1176332 top level 5 path var/spool
ID 272 gen 1172346 top level 5 path var/tmp
ID 797 gen 1164831 top level 5 path var/lib/machines
ID 1151 gen 1165566 top level 257 path .snapshots/634/snapshot
ID 1152 gen 1165566 top level 257 path .snapshots/635/snapshot
ID 1153 gen 1165566 top level 257 path .snapshots/636/snapshot
ID 1154 gen 1165563 top level 257 path .snapshots/637/snapshot
ID 1155 gen 1165563 top level 257 path .snapshots/638/snapshot
ID 1156 gen 1165563 top level 257 path .snapshots/639/snapshot
ID 1189 gen 1165564 top level 257 path .snapshots/640/snapshot
ID 1190 gen 1165563 top level 257 path .snapshots/641/snapshot
ID 1191 gen 1165563 top level 257 path .snapshots/642/snapshot
ID 1195 gen 1165562 top level 257 path .snapshots/643/snapshot
ID 1212 gen 1165563 top level 257 path .snapshots/644/snapshot
ID 1216 gen 1170499 top level 257 path .snapshots/645/snapshot
ID 1231 gen 1172343 top level 257 path .snapshots/646/snapshot
ID 1232 gen 1172345 top level 257 path .snapshots/647/snapshot
mmm we might have something,
0/274 0.00B 0.00B
That qgroup doesn't correspond to an ID.
I think that this line is messing up the output. I think this happens because you have quota enabled.
Can you try
sudo btrfs quota disable /
, then reboot (just in case), and then try the commands again, see if it reappears?
Trying to think the best way to adapt to this situation
Hmm, now they are all empty:
# btrfs quota disable /
# reboot
wait ... then logon and sudo -i bash
:
# btrfs quota enable /
# btrfs qgroup show --si /
WARNING: qgroup data inconsistent, rescan recommended
qgroupid rfer excl
-------- ---- ----
0/5 0.00B 0.00B
0/257 0.00B 0.00B
0/258 0.00B 0.00B
0/259 0.00B 0.00B
0/260 0.00B 0.00B
0/261 0.00B 0.00B
0/262 0.00B 0.00B
0/263 0.00B 0.00B
0/264 0.00B 0.00B
0/265 0.00B 0.00B
0/266 0.00B 0.00B
0/267 0.00B 0.00B
0/268 0.00B 0.00B
0/269 0.00B 0.00B
0/270 0.00B 0.00B
0/271 0.00B 0.00B
0/272 0.00B 0.00B
0/797 0.00B 0.00B
0/1151 0.00B 0.00B
0/1152 0.00B 0.00B
0/1153 0.00B 0.00B
0/1154 0.00B 0.00B
0/1155 0.00B 0.00B
0/1156 0.00B 0.00B
0/1189 0.00B 0.00B
0/1190 0.00B 0.00B
0/1191 0.00B 0.00B
0/1195 0.00B 0.00B
0/1212 0.00B 0.00B
0/1216 0.00B 0.00B
0/1231 0.00B 0.00B
0/1232 0.00B 0.00B
0/1234 0.00B 0.00B
0/1237 0.00B 0.00B
# btrfs subvolume list /
ID 257 gen 1176448 top level 5 path .snapshots
ID 258 gen 1176496 top level 257 path .snapshots/1/snapshot
ID 259 gen 1176447 top level 5 path boot/grub2/i386-pc
ID 260 gen 1164831 top level 5 path boot/grub2/x86_64-efi
ID 261 gen 1176439 top level 5 path opt
ID 262 gen 1176439 top level 5 path srv
ID 263 gen 1176494 top level 5 path tmp
ID 264 gen 1176445 top level 5 path usr/local
ID 265 gen 1176439 top level 5 path var/crash
ID 266 gen 1165551 top level 5 path var/lib/mailman
ID 267 gen 1176491 top level 5 path var/lib/named
ID 268 gen 1164831 top level 5 path var/lib/pgsql
ID 269 gen 1176494 top level 5 path var/log
ID 270 gen 1176439 top level 5 path var/opt
ID 271 gen 1176490 top level 5 path var/spool
ID 272 gen 1176490 top level 5 path var/tmp
ID 797 gen 1164831 top level 5 path var/lib/machines
ID 1151 gen 1165566 top level 257 path .snapshots/634/snapshot
ID 1152 gen 1165566 top level 257 path .snapshots/635/snapshot
ID 1153 gen 1165566 top level 257 path .snapshots/636/snapshot
ID 1154 gen 1165563 top level 257 path .snapshots/637/snapshot
ID 1155 gen 1165563 top level 257 path .snapshots/638/snapshot
ID 1156 gen 1165563 top level 257 path .snapshots/639/snapshot
ID 1189 gen 1165564 top level 257 path .snapshots/640/snapshot
ID 1190 gen 1165563 top level 257 path .snapshots/641/snapshot
ID 1191 gen 1165563 top level 257 path .snapshots/642/snapshot
ID 1195 gen 1165562 top level 257 path .snapshots/643/snapshot
ID 1212 gen 1165563 top level 257 path .snapshots/644/snapshot
ID 1216 gen 1170499 top level 257 path .snapshots/645/snapshot
ID 1231 gen 1172343 top level 257 path .snapshots/646/snapshot
ID 1232 gen 1172345 top level 257 path .snapshots/647/snapshot
ID 1234 gen 1176434 top level 257 path .snapshots/648/snapshot
ID 1237 gen 1176446 top level 257 path .snapshots/649/snapshot
then after waiting a while:
# btrfs qgroup show --si /
qgroupid rfer excl
-------- ---- ----
0/5 16.38kB 16.38kB
0/257 2.65MB 2.65MB
0/258 4.39GB 123.21MB
0/259 2.48MB 2.48MB
0/260 16.38kB 16.38kB
0/261 40.20MB 40.20MB
0/262 499.71MB 499.71MB
0/263 2.85MB 2.85MB
0/264 266.24kB 266.24kB
0/265 16.38kB 16.38kB
0/266 32.77kB 32.77kB
0/267 37.65MB 37.65MB
0/268 16.38kB 16.38kB
0/269 357.38MB 357.38MB
0/270 16.38kB 16.38kB
0/271 90.11kB 90.11kB
0/272 90.11kB 90.11kB
0/797 16.38kB 16.38kB
0/1151 4.34GB 457.27MB
0/1152 4.35GB 17.58MB
0/1153 4.34GB 16.65MB
0/1154 4.67GB 47.59MB
0/1155 4.35GB 348.16kB
0/1156 4.35GB 688.13kB
0/1189 4.34GB 1.78MB
0/1190 4.35GB 2.42MB
0/1191 4.35GB 8.34MB
0/1195 4.70GB 66.04MB
0/1212 4.36GB 14.84MB
0/1216 4.43GB 64.61MB
0/1231 4.38GB 6.77MB
0/1232 4.69GB 16.48MB
0/1234 4.68GB 16.77MB
0/1237 5.04GB 91.36MB
Still size differences though:
# ./btrfs-du/btrfs-du /
Subvolume Total Exclusive ID
─────────────────────────────────────────────────────────────────────────────────────────
.snapshots 2.65MB 2.65MB 257
.snapshots/1/snapshot 4.39GB 123.26MB 258
boot/grub2/i386-pc 2.48MB 2.48MB 259
boot/grub2/x86_64-efi 16.38kB 16.38kB 260
opt 40.20MB 40.20MB 261
srv 499.71MB 499.71MB 262
tmp 2.85MB 2.85MB 263
usr/local 266.24kB 266.24kB 264
var/crash 16.38kB 16.38kB 265
var/lib/mailman 32.77kB 32.77kB 266
var/lib/named 37.65MB 37.65MB 267
var/lib/pgsql 16.38kB 16.38kB 268
var/log 357.39MB 357.39MB 269
var/opt 16.38kB 16.38kB 270
var/spool 90.11kB 90.11kB 271
var/tmp 90.11kB 90.11kB 272
var/lib/machines 16.38kB 16.38kB 797
.snapshots/634/snapshot 4.34GB 457.27MB 1151
.snapshots/635/snapshot 4.35GB 17.58MB 1152
.snapshots/636/snapshot 4.34GB 16.65MB 1153
.snapshots/637/snapshot 4.67GB 47.59MB 1154
.snapshots/638/snapshot 4.35GB 348.16kB 1155
.snapshots/639/snapshot 4.35GB 688.13kB 1156
.snapshots/640/snapshot 4.34GB 1.78MB 1189
.snapshots/641/snapshot 4.35GB 2.42MB 1190
.snapshots/642/snapshot 4.35GB 8.34MB 1191
.snapshots/643/snapshot 4.70GB 66.04MB 1195
.snapshots/644/snapshot 4.36GB 14.84MB 1212
.snapshots/645/snapshot 4.43GB 64.61MB 1216
.snapshots/646/snapshot 4.38GB 6.77MB 1231
.snapshots/647/snapshot 4.69GB 16.48MB 1232
.snapshots/648/snapshot 4.68GB 16.77MB 1234
.snapshots/649/snapshot 5.04GB 91.41MB 1237
─────────────────────────────────────────────────────────────────────────────────────────
Total exclusive data: 1.68GB
# ./btrfs-size/btrfs-size.sh
==================================================================================================================================================================================================================
Snapshot / Subvolume ID Total Exclusive Data
==================================================================================================================================================================================================================
257 gen 1176448 top level 5 path .snapshots 257 2.52MB 2.52MB
258 gen 1176501 top level 257 path .snapshots/1/snapshot 258 4.09GB 117.55MB
259 gen 1176447 top level 5 path boot/grub2/i386-pc 259 2.36MB 2.36MB
260 gen 1164831 top level 5 path boot/grub2/x86_64-efi 260 16.00KB 16.00KB
261 gen 1176439 top level 5 path opt 261 38.34MB 38.34MB
262 gen 1176439 top level 5 path srv 262 476.56MB 476.56MB
263 gen 1176502 top level 5 path tmp 263 2.71MB 2.71MB
264 gen 1176501 top level 5 path usr/local 264 260.00KB 260.00KB
265 gen 1176439 top level 5 path var/crash 265 16.00KB 16.00KB
266 gen 1165551 top level 5 path var/lib/mailman 266 32.00KB 32.00KB
267 gen 1176491 top level 5 path var/lib/named 267 35.91MB 35.91MB
268 gen 1164831 top level 5 path var/lib/pgsql 268 16.00KB 16.00KB
269 gen 1176501 top level 5 path var/log 269 340.84MB 340.84MB
270 gen 1176439 top level 5 path var/opt 270 16.00KB 16.00KB
271 gen 1176490 top level 5 path var/spool 271 88.00KB 88.00KB
272 gen 1176490 top level 5 path var/tmp 272 88.00KB 88.00KB
797 gen 1164831 top level 5 path var/lib/machines 797 16.00KB 16.00KB
1151 gen 1165566 top level 257 path .snapshots/634/snapshot 1151 4.04GB 436.09MB
1152 gen 1165566 top level 257 path .snapshots/635/snapshot 1152 4.05GB 16.76MB
1153 gen 1165566 top level 257 path .snapshots/636/snapshot 1153 4.04GB 15.88MB
1154 gen 1165563 top level 257 path .snapshots/637/snapshot 1154 4.35GB 45.39MB
1155 gen 1165563 top level 257 path .snapshots/638/snapshot 1155 4.05GB 340.00KB
1156 gen 1165563 top level 257 path .snapshots/639/snapshot 1156 4.05GB 672.00KB
1189 gen 1165564 top level 257 path .snapshots/640/snapshot 1189 4.05GB 1.70MB
1190 gen 1165563 top level 257 path .snapshots/641/snapshot 1190 4.05GB 2.31MB
1191 gen 1165563 top level 257 path .snapshots/642/snapshot 1191 4.05GB 7.95MB
1195 gen 1165562 top level 257 path .snapshots/643/snapshot 1195 4.38GB 62.98MB
1212 gen 1165563 top level 257 path .snapshots/644/snapshot 1212 4.06GB 14.16MB
1216 gen 1170499 top level 257 path .snapshots/645/snapshot 1216 4.13GB 61.61MB
1231 gen 1172343 top level 257 path .snapshots/646/snapshot 1231 4.08GB 6.46MB
1232 gen 1172345 top level 257 path .snapshots/647/snapshot 1232 4.37GB 15.72MB
1234 gen 1176434 top level 257 path .snapshots/648/snapshot 1234 4.36GB 16.00MB
1237 gen 1176446 top level 257 path .snapshots/649/snapshot 1237 4.69GB 87.18MB
==================================================================================================================================================================================================================
Exclusive Total: 1.77GB
It cannot be fully explained bybtrfs-du
uses the sizes in SI units, whereas btrfs-size
internally uses 1024 based units but fails to show the i
in the unit to reflect that (the traditional https://en.wikipedia.org/wiki/Gibibyte versus https://en.wikipedia.org/wiki/Gigabyte thing).
So I've made a comparison table with the ratios (it is likely quite a bit wider than the comment width):
# ./btrfs-size/btrfs-size.sh | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
========== | ========== | ========== | ============== | # ./btrfs-du/btrfs-du / | |||||||||||
Snapshot / Subvolume | ID | Total | Exclusive Data | Subvolume | Total | Exclusive | ID | Total | Exclusive Data | Total | Exclusive | ID match | Total ratio | Exclusive ratio | Ratio match |
========== | ========== | ========== | ============== | ─────────── | ─────────── | ─────────── | ────── | ========== | ============== | ─────────── | ─────────── | ||||
257 gen 1176448 top level 5 path .snapshots | 257 | 2.52MB | 2.52MB | .snapshots | 2.65MB | 2.65MB | 257 | 2.52 | 2.52 | 2.65 | 2.65 | TRUE | 1.051587302 | 1.051587302 | TRUE |
258 gen 1176501 top level 257 path .snapshots/1/snapshot | 258 | 4.09GB | 117.55MB | .snapshots/1/snapshot | 4.39GB | 123.26MB | 258 | 4.09 | 117.55 | 4.39 | 123.26 | TRUE | 1.073349633 | 1.048575074 | FALSE |
259 gen 1176447 top level 5 path boot/grub2/i386-pc | 259 | 2.36MB | 2.36MB | boot/grub2/i386-pc | 2.48MB | 2.48MB | 259 | 2.36 | 2.36 | 2.48 | 2.48 | TRUE | 1.050847458 | 1.050847458 | TRUE |
260 gen 1164831 top level 5 path boot/grub2/x86_64-efi | 260 | 16.00KB | 16.00KB | boot/grub2/x86_64-efi | 16.38kB | 16.38kB | 260 | 16 | 16 | 16.38 | 16.38 | TRUE | 1.02375 | 1.02375 | TRUE |
261 gen 1176439 top level 5 path opt | 261 | 38.34MB | 38.34MB | opt | 40.20MB | 40.20MB | 261 | 38.34 | 38.34 | 40.2 | 40.2 | TRUE | 1.048513302 | 1.048513302 | TRUE |
262 gen 1176439 top level 5 path srv | 262 | 476.56MB | 476.56MB | srv | 499.71MB | 499.71MB | 262 | 476.56 | 476.56 | 499.71 | 499.71 | TRUE | 1.048577304 | 1.048577304 | TRUE |
263 gen 1176502 top level 5 path tmp | 263 | 2.71MB | 2.71MB | tmp | 2.85MB | 2.85MB | 263 | 2.71 | 2.71 | 2.85 | 2.85 | TRUE | 1.051660517 | 1.051660517 | TRUE |
264 gen 1176501 top level 5 path usr/local | 264 | 260.00KB | 260.00KB | usr/local | 266.24kB | 266.24kB | 264 | 260 | 260 | 266.24 | 266.24 | TRUE | 1.024 | 1.024 | TRUE |
265 gen 1176439 top level 5 path var/crash | 265 | 16.00KB | 16.00KB | var/crash | 16.38kB | 16.38kB | 265 | 16 | 16 | 16.38 | 16.38 | TRUE | 1.02375 | 1.02375 | TRUE |
266 gen 1165551 top level 5 path var/lib/mailman | 266 | 32.00KB | 32.00KB | var/lib/mailman | 32.77kB | 32.77kB | 266 | 32 | 32 | 32.77 | 32.77 | TRUE | 1.0240625 | 1.0240625 | TRUE |
267 gen 1176491 top level 5 path var/lib/named | 267 | 35.91MB | 35.91MB | var/lib/named | 37.65MB | 37.65MB | 267 | 35.91 | 35.91 | 37.65 | 37.65 | TRUE | 1.04845447 | 1.04845447 | TRUE |
268 gen 1164831 top level 5 path var/lib/pgsql | 268 | 16.00KB | 16.00KB | var/lib/pgsql | 16.38kB | 16.38kB | 268 | 16 | 16 | 16.38 | 16.38 | TRUE | 1.02375 | 1.02375 | TRUE |
269 gen 1176501 top level 5 path var/log | 269 | 340.84MB | 340.84MB | var/log | 357.39MB | 357.39MB | 269 | 340.84 | 340.84 | 357.39 | 357.39 | TRUE | 1.048556507 | 1.048556507 | TRUE |
270 gen 1176439 top level 5 path var/opt | 270 | 16.00KB | 16.00KB | var/opt | 16.38kB | 16.38kB | 270 | 16 | 16 | 16.38 | 16.38 | TRUE | 1.02375 | 1.02375 | TRUE |
271 gen 1176490 top level 5 path var/spool | 271 | 88.00KB | 88.00KB | var/spool | 90.11kB | 90.11kB | 271 | 88 | 88 | 90.11 | 90.11 | TRUE | 1.023977273 | 1.023977273 | TRUE |
272 gen 1176490 top level 5 path var/tmp | 272 | 88.00KB | 88.00KB | var/tmp | 90.11kB | 90.11kB | 272 | 88 | 88 | 90.11 | 90.11 | TRUE | 1.023977273 | 1.023977273 | TRUE |
797 gen 1164831 top level 5 path var/lib/machines | 797 | 16.00KB | 16.00KB | var/lib/machines | 16.38kB | 16.38kB | 797 | 16 | 16 | 16.38 | 16.38 | TRUE | 1.02375 | 1.02375 | TRUE |
1151 gen 1165566 top level 257 path .snapshots/634/snapshot | 1151 | 4.04GB | 436.09MB | .snapshots/634/snapshot | 4.34GB | 457.27MB | 1151 | 4.04 | 436.09 | 4.34 | 457.27 | TRUE | 1.074257426 | 1.048567956 | FALSE |
1152 gen 1165566 top level 257 path .snapshots/635/snapshot | 1152 | 4.05GB | 16.76MB | .snapshots/635/snapshot | 4.35GB | 17.58MB | 1152 | 4.05 | 16.76 | 4.35 | 17.58 | TRUE | 1.074074074 | 1.048926014 | FALSE |
1153 gen 1165566 top level 257 path .snapshots/636/snapshot | 1153 | 4.04GB | 15.88MB | .snapshots/636/snapshot | 4.34GB | 16.65MB | 1153 | 4.04 | 15.88 | 4.34 | 16.65 | TRUE | 1.074257426 | 1.048488665 | FALSE |
1154 gen 1165563 top level 257 path .snapshots/637/snapshot | 1154 | 4.35GB | 45.39MB | .snapshots/637/snapshot | 4.67GB | 47.59MB | 1154 | 4.35 | 45.39 | 4.67 | 47.59 | TRUE | 1.073563218 | 1.048468826 | FALSE |
1155 gen 1165563 top level 257 path .snapshots/638/snapshot | 1155 | 4.05GB | 340.00KB | .snapshots/638/snapshot | 4.35GB | 348.16kB | 1155 | 4.05 | 340 | 4.35 | 348.16 | TRUE | 1.074074074 | 1.024 | FALSE |
1156 gen 1165563 top level 257 path .snapshots/639/snapshot | 1156 | 4.05GB | 672.00KB | .snapshots/639/snapshot | 4.35GB | 688.13kB | 1156 | 4.05 | 672 | 4.35 | 688.13 | TRUE | 1.074074074 | 1.024002976 | FALSE |
1189 gen 1165564 top level 257 path .snapshots/640/snapshot | 1189 | 4.05GB | 1.70MB | .snapshots/640/snapshot | 4.34GB | 1.78MB | 1189 | 4.05 | 1.7 | 4.34 | 1.78 | TRUE | 1.071604938 | 1.047058824 | FALSE |
1190 gen 1165563 top level 257 path .snapshots/641/snapshot | 1190 | 4.05GB | 2.31MB | .snapshots/641/snapshot | 4.35GB | 2.42MB | 1190 | 4.05 | 2.31 | 4.35 | 2.42 | TRUE | 1.074074074 | 1.047619048 | FALSE |
1191 gen 1165563 top level 257 path .snapshots/642/snapshot | 1191 | 4.05GB | 7.95MB | .snapshots/642/snapshot | 4.35GB | 8.34MB | 1191 | 4.05 | 7.95 | 4.35 | 8.34 | TRUE | 1.074074074 | 1.049056604 | FALSE |
1195 gen 1165562 top level 257 path .snapshots/643/snapshot | 1195 | 4.38GB | 62.98MB | .snapshots/643/snapshot | 4.70GB | 66.04MB | 1195 | 4.38 | 62.98 | 4.7 | 66.04 | TRUE | 1.073059361 | 1.048586853 | FALSE |
1212 gen 1165563 top level 257 path .snapshots/644/snapshot | 1212 | 4.06GB | 14.16MB | .snapshots/644/snapshot | 4.36GB | 14.84MB | 1212 | 4.06 | 14.16 | 4.36 | 14.84 | TRUE | 1.073891626 | 1.048022599 | FALSE |
1216 gen 1170499 top level 257 path .snapshots/645/snapshot | 1216 | 4.13GB | 61.61MB | .snapshots/645/snapshot | 4.43GB | 64.61MB | 1216 | 4.13 | 61.61 | 4.43 | 64.61 | TRUE | 1.072639225 | 1.048693394 | FALSE |
1231 gen 1172343 top level 257 path .snapshots/646/snapshot | 1231 | 4.08GB | 6.46MB | .snapshots/646/snapshot | 4.38GB | 6.77MB | 1231 | 4.08 | 6.46 | 4.38 | 6.77 | TRUE | 1.073529412 | 1.047987616 | FALSE |
1232 gen 1172345 top level 257 path .snapshots/647/snapshot | 1232 | 4.37GB | 15.72MB | .snapshots/647/snapshot | 4.69GB | 16.48MB | 1232 | 4.37 | 15.72 | 4.69 | 16.48 | TRUE | 1.073226545 | 1.048346056 | FALSE |
1234 gen 1176434 top level 257 path .snapshots/648/snapshot | 1234 | 4.36GB | 16.00MB | .snapshots/648/snapshot | 4.68GB | 16.77MB | 1234 | 4.36 | 16 | 4.68 | 16.77 | TRUE | 1.073394495 | 1.048125 | FALSE |
1237 gen 1176446 top level 257 path .snapshots/649/snapshot | 1237 | 4.69GB | 87.18MB | .snapshots/649/snapshot | 5.04GB | 91.41MB | 1237 | 4.69 | 87.18 | 5.04 | 91.41 | TRUE | 1.074626866 | 1.048520303 | FALSE |
========== | ========== | ========== | ============== | ─────────── | ─────────── | ─────────── | ────── | ========== | ============== | ─────────── | ─────────── | ||||
Exclusi | ve Total: | 1.77GB | Total exclusiv | e data: 1.6 | 8GB |
Thanks for the detailed info.
There are some mismatches due to the 'ghost qgroups', so I created a new version that matches better by ID. (v0.0.4
)
You can re-enable quotas if you want, because it seems that the problem stemmed from that.
If there are no mismatches we can look again at the accuracy of 1024 vs 1000 base reporting.
Please, tell me if you keep seeing inconsistences, showing output of btrfs-du
, qgroup show and list.
Thanks!
edit: we are specifically looking at those empty qgroups, like
0/274 0.00B 0.00B
now it should work fine even with those
Thanks @nachoparker below the info based on v0.0.4
.
btrfs-du
# ./btrfs-du/btrfs-du
Subvolume Total Exclusive ID
─────────────────────────────────────────────────────────────────────────────────────────
.snapshots 2.62MB 2.62MB 257
.snapshots/1/snapshot 4.39GB 159.50MB 258
boot/grub2/i386-pc 2.48MB 2.48MB 259
boot/grub2/x86_64-efi 16.38kB 16.38kB 260
opt 40.20MB 40.20MB 261
srv 499.71MB 499.71MB 262
tmp 2.85MB 2.85MB 263
usr/local 266.24kB 266.24kB 264
var/crash 16.38kB 16.38kB 265
var/lib/mailman 32.77kB 32.77kB 266
var/lib/named 37.65MB 37.65MB 267
var/lib/pgsql 16.38kB 16.38kB 268
var/log 332.82MB 332.82MB 269
var/opt 16.38kB 16.38kB 270
var/spool 90.11kB 90.11kB 271
var/tmp 90.11kB 90.11kB 272
var/lib/machines 16.38kB 16.38kB 797
.snapshots/636/snapshot 4.34GB 414.64MB 1153
.snapshots/637/snapshot 4.67GB 58.21MB 1154
.snapshots/640/snapshot 4.34GB 2.11MB 1189
.snapshots/641/snapshot 4.35GB 2.42MB 1190
.snapshots/642/snapshot 4.35GB 8.34MB 1191
.snapshots/643/snapshot 4.70GB 66.04MB 1195
.snapshots/644/snapshot 4.36GB 14.84MB 1212
.snapshots/645/snapshot 4.43GB 64.61MB 1216
.snapshots/646/snapshot 4.38GB 6.77MB 1231
.snapshots/647/snapshot 4.69GB 16.48MB 1232
.snapshots/648/snapshot 4.68GB 16.77MB 1234
.snapshots/649/snapshot 5.04GB 95.89MB 1237
─────────────────────────────────────────────────────────────────────────────────────────
Total exclusive data: 1.63GB
btrfs qgroup show /
# btrfs qgroup show /
qgroupid rfer excl
-------- ---- ----
0/5 16.00KiB 16.00KiB
0/257 2.50MiB 2.50MiB
0/258 4.08GiB 152.11MiB
0/259 2.36MiB 2.36MiB
0/260 16.00KiB 16.00KiB
0/261 38.34MiB 38.34MiB
0/262 476.56MiB 476.56MiB
0/263 2.71MiB 2.71MiB
0/264 260.00KiB 260.00KiB
0/265 16.00KiB 16.00KiB
0/266 32.00KiB 32.00KiB
0/267 35.91MiB 35.91MiB
0/268 16.00KiB 16.00KiB
0/269 317.40MiB 317.40MiB
0/270 16.00KiB 16.00KiB
0/271 88.00KiB 88.00KiB
0/272 88.00KiB 88.00KiB
0/797 16.00KiB 16.00KiB
0/1153 4.04GiB 395.43MiB
0/1154 4.35GiB 55.51MiB
0/1189 4.05GiB 2.01MiB
0/1190 4.05GiB 2.31MiB
0/1191 4.05GiB 7.95MiB
0/1195 4.38GiB 62.98MiB
0/1212 4.06GiB 14.16MiB
0/1216 4.13GiB 61.61MiB
0/1231 4.08GiB 6.46MiB
0/1232 4.37GiB 15.72MiB
0/1234 4.36GiB 16.00MiB
0/1237 4.69GiB 91.45MiB
btrfs subvolume list /
# btrfs subvolume list /
ID 257 gen 1176807 top level 5 path .snapshots
ID 258 gen 1178595 top level 257 path .snapshots/1/snapshot
ID 259 gen 1176447 top level 5 path boot/grub2/i386-pc
ID 260 gen 1164831 top level 5 path boot/grub2/x86_64-efi
ID 261 gen 1176439 top level 5 path opt
ID 262 gen 1178528 top level 5 path srv
ID 263 gen 1178595 top level 5 path tmp
ID 264 gen 1178593 top level 5 path usr/local
ID 265 gen 1176439 top level 5 path var/crash
ID 266 gen 1165551 top level 5 path var/lib/mailman
ID 267 gen 1178374 top level 5 path var/lib/named
ID 268 gen 1164831 top level 5 path var/lib/pgsql
ID 269 gen 1178595 top level 5 path var/log
ID 270 gen 1176439 top level 5 path var/opt
ID 271 gen 1178584 top level 5 path var/spool
ID 272 gen 1176490 top level 5 path var/tmp
ID 797 gen 1164831 top level 5 path var/lib/machines
ID 1153 gen 1165566 top level 257 path .snapshots/636/snapshot
ID 1154 gen 1165563 top level 257 path .snapshots/637/snapshot
ID 1189 gen 1165564 top level 257 path .snapshots/640/snapshot
ID 1190 gen 1165563 top level 257 path .snapshots/641/snapshot
ID 1191 gen 1165563 top level 257 path .snapshots/642/snapshot
ID 1195 gen 1165562 top level 257 path .snapshots/643/snapshot
ID 1212 gen 1165563 top level 257 path .snapshots/644/snapshot
ID 1216 gen 1170499 top level 257 path .snapshots/645/snapshot
ID 1231 gen 1172343 top level 257 path .snapshots/646/snapshot
ID 1232 gen 1172345 top level 257 path .snapshots/647/snapshot
ID 1234 gen 1176434 top level 257 path .snapshots/648/snapshot
ID 1237 gen 1176446 top level 257 path .snapshots/649/snapshot
# ./btrfs-size/btrfs-size.sh | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
=========== | =========== | =========== | =========== | # ./btrfs-du/btrfs-du / | |||||||||||
Snapshot / Subvolume | ID | Total | Exclusive Data | Subvolume | Total | Exclusive | ID | Total | Exclusive Data | Total | Exclusive | ID match | Total ratio | Exclusive ratio | Ratio match |
=========== | =========== | =========== | =========== | ────── | ────── | ────── | ────── | =========== | =========== | ────── | ────── | ||||
257 gen 1176807 top level 5 path .snapshots | 257 | 2.50MB | 2.50MB | .snapshots | 2.62MB | 2.62MB | 257 | 2.5 | 2.5 | 2.62 | 2.62 | TRUE | 1.048 | 1.048 | TRUE |
258 gen 1178584 top level 257 path .snapshots/1/snapshot | 258 | 4.09GB | 152.10MB | .snapshots/1/snapshot | 4.39GB | 159.49MB | 258 | 4.09 | 152.1 | 4.39 | 159.49 | TRUE | 1.073349633 | 1.048586456 | FALSE |
259 gen 1176447 top level 5 path boot/grub2/i386-pc | 259 | 2.36MB | 2.36MB | boot/grub2/i386-pc | 2.48MB | 2.48MB | 259 | 2.36 | 2.36 | 2.48 | 2.48 | TRUE | 1.050847458 | 1.050847458 | TRUE |
260 gen 1164831 top level 5 path boot/grub2/x86_64-efi | 260 | 16.00KB | 16.00KB | boot/grub2/x86_64-efi | 16.38kB | 16.38kB | 260 | 16 | 16 | 16.38 | 16.38 | TRUE | 1.02375 | 1.02375 | TRUE |
261 gen 1176439 top level 5 path opt | 261 | 38.34MB | 38.34MB | opt | 40.20MB | 40.20MB | 261 | 38.34 | 38.34 | 40.2 | 40.2 | TRUE | 1.048513302 | 1.048513302 | TRUE |
262 gen 1178528 top level 5 path srv | 262 | 476.56MB | 476.56MB | srv | 499.71MB | 499.71MB | 262 | 476.56 | 476.56 | 499.71 | 499.71 | TRUE | 1.048577304 | 1.048577304 | TRUE |
263 gen 1178584 top level 5 path tmp | 263 | 2.71MB | 2.71MB | tmp | 2.85MB | 2.85MB | 263 | 2.71 | 2.71 | 2.85 | 2.85 | TRUE | 1.051660517 | 1.051660517 | TRUE |
264 gen 1176501 top level 5 path usr/local | 264 | 260.00KB | 260.00KB | usr/local | 266.24kB | 266.24kB | 264 | 260 | 260 | 266.24 | 266.24 | TRUE | 1.024 | 1.024 | TRUE |
265 gen 1176439 top level 5 path var/crash | 265 | 16.00KB | 16.00KB | var/crash | 16.38kB | 16.38kB | 265 | 16 | 16 | 16.38 | 16.38 | TRUE | 1.02375 | 1.02375 | TRUE |
266 gen 1165551 top level 5 path var/lib/mailman | 266 | 32.00KB | 32.00KB | var/lib/mailman | 32.77kB | 32.77kB | 266 | 32 | 32 | 32.77 | 32.77 | TRUE | 1.0240625 | 1.0240625 | TRUE |
267 gen 1178374 top level 5 path var/lib/named | 267 | 35.91MB | 35.91MB | var/lib/named | 37.65MB | 37.65MB | 267 | 35.91 | 35.91 | 37.65 | 37.65 | TRUE | 1.04845447 | 1.04845447 | TRUE |
268 gen 1164831 top level 5 path var/lib/pgsql | 268 | 16.00KB | 16.00KB | var/lib/pgsql | 16.38kB | 16.38kB | 268 | 16 | 16 | 16.38 | 16.38 | TRUE | 1.02375 | 1.02375 | TRUE |
269 gen 1178584 top level 5 path var/log | 269 | 317.34MB | 317.34MB | var/log | 332.75MB | 332.75MB | 269 | 317.34 | 317.34 | 332.75 | 332.75 | TRUE | 1.048559904 | 1.048559904 | TRUE |
270 gen 1176439 top level 5 path var/opt | 270 | 16.00KB | 16.00KB | var/opt | 16.38kB | 16.38kB | 270 | 16 | 16 | 16.38 | 16.38 | TRUE | 1.02375 | 1.02375 | TRUE |
271 gen 1178584 top level 5 path var/spool | 271 | 88.00KB | 88.00KB | var/spool | 90.11kB | 90.11kB | 271 | 88 | 88 | 90.11 | 90.11 | TRUE | 1.023977273 | 1.023977273 | TRUE |
272 gen 1176490 top level 5 path var/tmp | 272 | 88.00KB | 88.00KB | var/tmp | 90.11kB | 90.11kB | 272 | 88 | 88 | 90.11 | 90.11 | TRUE | 1.023977273 | 1.023977273 | TRUE |
797 gen 1164831 top level 5 path var/lib/machines | 797 | 16.00KB | 16.00KB | var/lib/machines | 16.38kB | 16.38kB | 797 | 16 | 16 | 16.38 | 16.38 | TRUE | 1.02375 | 1.02375 | TRUE |
1153 gen 1165566 top level 257 path .snapshots/636/snapshot | 1153 | 4.04GB | 395.43MB | .snapshots/636/snapshot | 4.34GB | 414.64MB | 1153 | 4.04 | 395.43 | 4.34 | 414.64 | TRUE | 1.074257426 | 1.048580027 | FALSE |
1154 gen 1165563 top level 257 path .snapshots/637/snapshot | 1154 | 4.35GB | 55.51MB | .snapshots/637/snapshot | 4.67GB | 58.21MB | 1154 | 4.35 | 55.51 | 4.67 | 58.21 | TRUE | 1.073563218 | 1.048639885 | FALSE |
1189 gen 1165564 top level 257 path .snapshots/640/snapshot | 1189 | 4.05GB | 2.01MB | .snapshots/640/snapshot | 4.34GB | 2.11MB | 1189 | 4.05 | 2.01 | 4.34 | 2.11 | TRUE | 1.071604938 | 1.049751244 | FALSE |
1190 gen 1165563 top level 257 path .snapshots/641/snapshot | 1190 | 4.05GB | 2.31MB | .snapshots/641/snapshot | 4.35GB | 2.42MB | 1190 | 4.05 | 2.31 | 4.35 | 2.42 | TRUE | 1.074074074 | 1.047619048 | FALSE |
1191 gen 1165563 top level 257 path .snapshots/642/snapshot | 1191 | 4.05GB | 7.95MB | .snapshots/642/snapshot | 4.35GB | 8.34MB | 1191 | 4.05 | 7.95 | 4.35 | 8.34 | TRUE | 1.074074074 | 1.049056604 | FALSE |
1195 gen 1165562 top level 257 path .snapshots/643/snapshot | 1195 | 4.38GB | 62.98MB | .snapshots/643/snapshot | 4.70GB | 66.04MB | 1195 | 4.38 | 62.98 | 4.7 | 66.04 | TRUE | 1.073059361 | 1.048586853 | FALSE |
1212 gen 1165563 top level 257 path .snapshots/644/snapshot | 1212 | 4.06GB | 14.16MB | .snapshots/644/snapshot | 4.36GB | 14.84MB | 1212 | 4.06 | 14.16 | 4.36 | 14.84 | TRUE | 1.073891626 | 1.048022599 | FALSE |
1216 gen 1170499 top level 257 path .snapshots/645/snapshot | 1216 | 4.13GB | 61.61MB | .snapshots/645/snapshot | 4.43GB | 64.61MB | 1216 | 4.13 | 61.61 | 4.43 | 64.61 | TRUE | 1.072639225 | 1.048693394 | FALSE |
1231 gen 1172343 top level 257 path .snapshots/646/snapshot | 1231 | 4.08GB | 6.46MB | .snapshots/646/snapshot | 4.38GB | 6.77MB | 1231 | 4.08 | 6.46 | 4.38 | 6.77 | TRUE | 1.073529412 | 1.047987616 | FALSE |
1232 gen 1172345 top level 257 path .snapshots/647/snapshot | 1232 | 4.37GB | 15.72MB | .snapshots/647/snapshot | 4.69GB | 16.48MB | 1232 | 4.37 | 15.72 | 4.69 | 16.48 | TRUE | 1.073226545 | 1.048346056 | FALSE |
1234 gen 1176434 top level 257 path .snapshots/648/snapshot | 1234 | 4.36GB | 16.00MB | .snapshots/648/snapshot | 4.68GB | 16.77MB | 1234 | 4.36 | 16 | 4.68 | 16.77 | TRUE | 1.073394495 | 1.048125 | FALSE |
1237 gen 1176446 top level 257 path .snapshots/649/snapshot | 1237 | 4.69GB | 91.43MB | .snapshots/649/snapshot | 5.04GB | 95.87MB | 1237 | 4.69 | 91.43 | 5.04 | 95.87 | TRUE | 1.074626866 | 1.048561741 | FALSE |
=========== | =========== | =========== | =========== | ────── | ────── | ────── | ────── | =========== | =========== | ────── | ────── | ||||
Exclusiv | e Total: | 1.72GB | Total exclusiv | e data: 1.6 | 3GB |
Well, looks good to me. The only thing is that there are no 'ghost qgroups', so cannot be 100% sure until we find a situation with those, but I simulated that with some fake input and I think it should be fine.
As for the sizes... I suspect btrfs-size
gets some rounding errors or similar, because I just capture and print the output of btrfs qgroup show --si
.
We could investigate the conversion btrfs-size
performs, but I think it's safe to trust btrfs-tools.
Thoughts?
Thanks again!
@nachoparker I noticed at https://github.com/nachoparker/btrfs-du/blob/master/btrfs-du#L91 that it uses the non-SI unit conversion unit.
I think there are two options:
btrfs qgroup show --iec
instead to be consistent?awk
to use SI unit conversiongood catch
Well, storage normally goes in --si
, so base 1000 (MB,TB...).
Unix tools tend to use --iec
, so base 1024 (MiB, TiB...). For instance, ls -lh
uses iec, unless you do ls -lh --si
. btrfs-tools also defaults to iec.
I think that si
is more appropriate, but it seems that most tools use iec
, so I would use that for everything, so I would vote for the first option.
Thoughts?
@nachoparker I am all for consistency, so my choice is --iec
.
I did some Googling and came up with bytesToHuman.bash in https://gist.github.com/jpluimers/0f21bf1d937fe0b9b4044f21944a90ec
It can do both IEC and SI and is pure bash
.
I will integrate it with the legacy btrfs script later tonight.
Here you go: https://github.com/jpluimers/btrfs-du/commit/3fc64281cd6dc4470bac40b972a18368d473e5a6
Let me know if you like it and I'll submit a pull request.
Thanks for the script via https://github.com/agronick/btrfs-size/issues/3#issuecomment-349717664
Any obvious reasons for slight mismatches in the sizes?
I've ran the latest
btrfs-size.sh
andbtrfs-du.sh
and they seem to bee off a bit, sometimes more than just a bit.I'd expect some 1024 based factors or 1.024 powered factors, but sometimes it's much more like for ".snapshots/632/snapshot" or ".snapshots/633/snapshot"
Any idea why?