[pve-devel] KVM Live Backup performance

Eric Blevins eric at netwalk.com
Tue Nov 26 17:39:27 CET 2013

> There is also a small possibility that we have a bug ;-) I will debug that
> when I update that code for 1.7.
> Looking at the code, it seems that we also backup read blocks immediately. That way we
> can avoid re-reads.
> I am not sure if that is good or bad.

This would explain the degraded read performance I am seeing.
The writes are also limited in this same manner but this was already 
well known.

I have a suggestion that would help alleviate the read and write 
downsides to this.

Create a memory buffer where the reads/writes from the VM are placed.
When buffer is over a certain percentage, stop the backup read 
operations and flush the buffer.
The VM can perform IO up to the limit of the memory buffer with little 
loss in performance.

mbuffer demonstrates that adding a buffer has a positive impact on the 
VM performance:
vzdump 108 -stdout|mbuffer -m 10G |cstream -t 40000000 > /dev/null

In the VM I ran the same read operation as before:
dd if=/dev/vdb of=/dev/null bs=1M count=8192 skip=24000

I was able to read at 83.7MB/sec, previously with the same cstream limit 
I only got 31.8MB/sec

More information about the pve-devel mailing list