meta data for this page
  •  

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
linux:fs:btrfs:maintenance [2020/07/21 07:03] niziaklinux:fs:btrfs:maintenance [2025/01/03 07:52] (current) niziak
Line 1: Line 1:
 ====== BTRFS Maintenance scripts ====== ====== BTRFS Maintenance scripts ======
  
 +===== btrfsmaintenance =====
 +
 +<code bash>
 +apt install btrfsmaintenance
 +</code>
 +
 +<file sh /etc/default/btrfsmaintenance>
 +BTRFS_TRIM_PERIOD="weekly"
 +</file>
 +
 +<code bash>
 +systemctl restart btrfsmaintenance-refresh
 +
 +#systemctl enable btrfs-scrub.timer btrfs-trim.timer
 +#systemctl start btrfs-trim.service
 +#systemctl start btrfs-scrub.service
 +</code>
 +===== Defragment =====
 +From [[https://helmundwalter.de/blog/btrfs-finding-and-fixing-highly-fragmented-files/|BTRFS fragmentation can hurt the performance of your System]]
 +
 +Find the most fragmented files on your System:
 +
 +<code bash>
 +find / -xdev -type f| xargs filefrag 2>/dev/null | sed 's/^\(.*\): \([0-9]\+\) extent.*/\2 \1/' | awk -F ' ' '$1 > 500' | sort -n -r | head -30
 +</code>
 +
 +You should review this list. If there is something with 10000+ extends, it is a candidate to be flagged as nodatacow. In my case, I have discovered that the fail2ban sqlite database was using 170k extends which is a lot!
 +
 +<code bash>
 +find / -xdev -type f| xargs filefrag 2>/dev/null | sed 's/^\(.*\): \([0-9]\+\) extent.*/\2 \1/' | awk -F ' ' '$1 > 500' | cut -f ' ' -f2 2>/dev/null | xargs -r btrfs -v fi defrag -f -czstd
 +</code>
 +
 +
 +===== Headline =====
  
 <file bash /usr/local/bin/btrfsQuota.sh> <file bash /usr/local/bin/btrfsQuota.sh>