[linux-lvm] Why is the performance of my lvmthin snapshot so poor

Zhiyong Ye yezhiyong at bytedance.com
Tue Jun 14 13:29:17 UTC 2022

在 6/14/22 8:56 PM, Gionatan Danti 写道:
> Il 2022-06-14 12:16 Zhiyong Ye ha scritto:
>> After creating the PV and VG based on the iSCSI device, I created the
>> thin pool as follows:
>> lvcreate -n pool -L 1000G test-vg
>> lvcreate -n poolmeta -L 100G test-vg
>> lvconvert --type thin-pool --chunksize 64k --poolmetadata
>> test-vg/poolmeta test-vg/pool
>> lvchange -Z n test-vg/pool
> I did my performance test with bigger chunk size, in the range of 
> 128-512K. It can very well be that the overload of a smaller chunk size 
> results in 10x lower IOPs for to-be-allocated-and-copied chunks. Can you 
> retry fio after increasing chunk size?

Yes, I also tested the write performance after creating snapshots with 
different chunksize. But the data shows that the larger the chunksize, 
the worse the performance. The data is shown below:
chunksize               iops
64k                     5245
256k                    2115
1024k                   509

The reason for this may be that when the volume creates a snapshot, each 
write to an existing block will cause a COW (Copy-on-write), and the COW 
is a copy of the entire data block in chunksize, for example, when the 
chunksize is 64k, even if only 4k of data is written, the entire 64k 
data block will be copied. I'm not sure if I understand this correctly.

More information about the linux-lvm mailing list