Created
December 11, 2018 05:00
-
-
Save adam900710/f5e1006eb5846eabc4155126c4ca2e46 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
dev=/dev/test/test | |
mnt=/mnt/btrfs | |
dmesg -C | |
umount $mnt &> /dev/null | |
umount $dev &> /dev/null | |
mkfs.btrfs -f $dev -n 4k -m single | |
mount $dev $mnt -o nospace_cache,max_inline=2048 | |
#btrfs sub create $mnt/src | |
mkdir $mnt/src | |
mkdir -p $mnt/snapshots | |
btrfs quota enable $mnt | |
btrfs quota rescan -w $mnt | |
fill_workload() | |
{ | |
for i in $(seq 1 10000); do | |
xfs_io -f -c "pwrite 0 512K" $mnt/src/file_large_$i > /dev/null | |
xfs_io -f -c "pwrite 0 2K" $mnt/src/file_inline_$i > /dev/null | |
if [ $(( $i % 5 )) -eq 0 ]; then | |
rm $mnt/src/$(ls $mnt/src/ | sort -R | tail -n1) | |
fi | |
done | |
echo "fill_workload finished" | |
} | |
snapshot_workload() | |
{ | |
for i in $(seq 1 10000); do | |
sleep 2 | |
#btrfs subv snapshot $mnt/src $mnt/snapshots/$i | |
btrfs subv snapshot $mnt $mnt/snapshots/$i | |
done | |
echo "snapshot_workoad finished" | |
} | |
delete_workload() | |
{ | |
while true; do | |
sleep 4 | |
last=$(ls $mnt/snapshots | sort | tail -n1) | |
dest=$(( $RANDOM % $last + 1)) | |
if [ -d $mnt/snapshots/$dest ]; then | |
btrfs subv delete $mnt/snapshots/${dest} | |
fi | |
done | |
} | |
fill_workload & | |
sleep 3 | |
snapshot_workload & | |
delete_workload & | |
sleep 60 | |
kill 0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment