[linux-lvm] Thin pool performance when allocating lots of blocks
zdenek.kabelac at gmail.com
Tue Feb 8 20:37:08 UTC 2022
Dne 08. 02. 22 v 20:00 Demi Marie Obenour napsal(a):
> Are thin volumes (which start as snapshots of a blank volume) efficient
> for building virtual machine images? Given the nature of this workload
> (writing to lots of new, possibly-small files, then copying data from
> them to a huge disk image), I expect that this will cause sharing to be
> broken many, many times, and the kernel code that breaks sharing appears
> to be rather heavyweight. Furthermore, since zeroing is enabled, this
> might cause substantial write amplification. Turning zeroing off is not
> an option for security reasons.
> Is there a way to determine if breaking sharing is the cause of
> performance problems? If it is, are there any better solutions?
Usually the smaller the thin chunks size is the smaller the problem gets.
With current released version of thin-provisioning minimal chunk size is
64KiB. So you can't use smaller value to further reduce this impact.
Note - even if you do a lot of tiny 4KiB writes - only the 'first' such write
into 64K area breaks sharing all following writes to same location no longer
have this penalty (also zeroing with 64K is less impactful...)
But it's clear thin-provisioning comes with some price - so if it's not good
enough from time constrains some other solutions might need to be explored.
(i.e. caching, better hw, splitting FS into multiple partitions with
For analysis of device hot points you could check 'dmstats' tool for DM devices.
More information about the linux-lvm