Spinning rust woes: Cowbuilder
Wow.
I use a traditional, spinning rust hard drive as my main volume:
$ /dev/sda2 on / type btrfs (rw,relatime,compress=zlib:3,space_cache,subvolid=5,subvol=/)
I just adopted Lars’ vmdb2. Of course, I was eager to build and upload my first version and… Hit a FTBFS bug due to missing dependencies… Bummer!
So I went to my good ol’ cowbuilder (package cowdancer)to fix whatever needed fixing. But it took long! Do note that my /var/cache/pbuilder/base.cow was already set up and updated.
time cowbuilder –build /home/gwolf/vcs/build-area/vmdb2_0.13.2+git20190215-1.dsc
(…)
real 15m55.403s
user 0m53.734s
sys 0m23.138s
</code>
But… What if I take the spinning rust out of the equation?
mkdir /var/cache/pbuilder
mount none -t tmpfs /var/cache/pbuilder
time rsync -a /var/cache/pbuilderbk/* /var/cache/pbuilder
real 0m5.363s user 0m2.333s sys 0m0.709s
time cowbuilder –build /home/gwolf/vcs/build-area/vmdb2_0.13.2+git20190215-1.dsc
(…) real 0m52.586s user 0m53.076s sys 0m8.277s </code> Close to ¹/₁₆th of the running time — Even including the copy of the </tt>base.cow</tt>!
OK, I cheated a bit before the rsync, as my cache was already warm… But still, convenient!
Comments
Alexander E. Patrakov 2019-02-15 12:45:00
Too many variations
I would say, it is not proven that such slowdown is due to spinning rust. It may be a combination of spinning rust and btrfs, and years ago it was the reason for me to abandon btrfs on my desktop PC. Could you please retry with ext4 or xfs, if you have a spare partition? Also, does your cowbuilder use eatmydata?