Update notes for 2021 Disk Image Pipelines.
[libguestfs-talks.git] / 2021-pipelines / benchmarking.txt
diff --git a/2021-pipelines/benchmarking.txt b/2021-pipelines/benchmarking.txt
new file mode 100644 (file)
index 0000000..21af30f
--- /dev/null
@@ -0,0 +1,68 @@
+Scenario (A)
+----------------------------------------------------------------------
+
+(1) Create fedora-33 "dirty" disk image (simulating a long-running VM)
+on a remote SSH server.  See "create.sh" script.
+
+(2) The remote server is located over a 100 Mbps ethernet link.  Both
+the client and server have plenty of local CPU and are otherwise idle
+during the test.
+
+(3) scp test:
+
+scp remote:fedora-33.img local.img
+
+(4) qcow2 snapshot + sparsify + qemu-img convert.  The time taken to
+run all of the following operations in series.  See "testA4.sh".
+
+(5) As above but without sparsify.  See "testA5.sh".
+
+(6) As above but using nbdkit + nbdcopy.  See "testA6.sh".
+
+
+Results of scenario (A)
+----------------------------------------------------------------------
+
+(3) (scp) 48m40
+    ls -lsh local.img :
+
+(4) (sparsify + qemu-img convert) 2m21
+
+(5) (qemu-img convert)  59m39
+    ls -lsh local.img :
+    4.1G -rw-r--r--. 1 rjones rjones 32G Feb 10 11:11 local.img
+
+(6) (nbdkit + nbdcopy) 3m49 [probably lock contention in cow filter]
+    $ ls -lsh local.img
+    1.2G -rw-r--r--. 1 rjones rjones 32G Feb 10 11:16 local.img
+
+
+
+Scenario (B)
+----------------------------------------------------------------------
+
+(1) Create local OVA file from disk image in scenario (A) using:
+
+tar -cf test.ova -C /path/to/remote fedora-33.img
+# -S option is not usually used with OVA files
+
+(2) Time how long it takes to copy the file:
+
+time cp test.ova test2.ova
+
+(3) Time how long it takes to unpack this using tar -xf:
+
+time tar -xf test.ova fedora-33.img
+
+(4) Time how long it takes to copy out the sparsified image.
+See "testB4.sh".
+
+
+Results of scenario (B)
+----------------------------------------------------------------------
+
+(2) (cp) 40s
+
+(3) (tar xf) 43s
+
+(4) (sparsify + qemu-img convert) 7.6s