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

Zhiyong Ye yezhiyong at bytedance.com
Tue Jun 14 10:16:18 UTC 2022


Hi Gionatan,

Thanks for your reply and detailed answer.

I actually use iSCSI for my underlying storage and the bare disk random 
write iops is 65543. Some of the parameters of my iSCSI initiator are as 
follows:
node.session.iscsi.FirstBurstLength = 524288
node.session.iscsi.MaxBurstLength = 33552384
node.session.cmds_max = 4096
node.session.queue_depth = 1024

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

Then I create thin lv in the thin pool:
lvcreate -n test-thin -V 500G --thinpool pool test-vg

And my command for creating snapshots:
lvcreate -n test-thin1s1 -s test-vg/test-thin

I have the following fio parameter and use it for all tests:
[global]
bs=4k
direct=1
iodepth=32
numjobs=8
ioengine=libaio
group_reporting
runtime=120
time_based
filename=/dev/vdb

[rand-write]
name=rand-write
rw=randwrite
stonewall

Thanks again!

Zhiyong Ye

在 6/14/22 3:04 PM, Gionatan Danti 写道:
> Il 2022-06-13 10:49 Zhiyong Ye ha scritto:
>> The performance degradation after snapshotting is expected as writing
>> to a snapshotted lv involving reading the original data, writing it
>> elsewhere and then writing new data into the original chunk. But the
>> performance loss was so much more than I expected. Is there any way to
>> improve performance after creating a snapshot? Can I ask for your
>> help?
> 
> This is the key point: when first writing to a new chunk, not only it 
> needs to be allocated, but old data must be copied. This r/m/w operation 
> transform an async operation (write) on a sync one (read), ruining 
> performance. Subsequent writes to the same chunk does have the same issue.
> 
> The magnitute of the slowdown seems somewhat excessive, though. When 
> dealing with HDD pools, I remember a 3-5x impact on IOPs. Can you show 
> the exact fio command and the parameters of your thin pool (ie: chunk 
> size) and storage subsystem (HDD vs SSD, SATA vs SAS vs NVME)?
> 
> Regards.
> 



More information about the linux-lvm mailing list