Slides 4000/5000 (benchmarks).
authorRichard W.M. Jones <rjones@redhat.com>
Fri, 12 Feb 2021 14:41:28 +0000 (14:41 +0000)
committerRichard W.M. Jones <rjones@redhat.com>
Fri, 12 Feb 2021 14:41:28 +0000 (14:41 +0000)
2021-pipelines/4000-benchmark-A.html [new file with mode: 0644]
2021-pipelines/4100-benchmark-A-results.html [new file with mode: 0644]
2021-pipelines/5000-ova-files.html [new file with mode: 0644]
2021-pipelines/5100-benchmark-B.html [new file with mode: 0644]
2021-pipelines/5200-benchmark-B-results.html [new file with mode: 0644]
2021-pipelines/notes.txt

diff --git a/2021-pipelines/4000-benchmark-A.html b/2021-pipelines/4000-benchmark-A.html
new file mode 100644 (file)
index 0000000..050ca3d
--- /dev/null
@@ -0,0 +1,62 @@
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+<link rel="stylesheet" href="style.css" type="text/css"/>
+<script src="code.js" type="text/javascript"></script>
+
+<h1>Benchmark A: copying</h1>
+
+<style>
+table#bench {
+    width: 90%;
+}
+table#bench th {
+    vertical-align: top;
+}
+</style>
+
+<table id="bench">
+<tr>
+<th> scp </th>
+<td> <pre style="font-size: 60%">scp remote:fedora-33.img local.img</pre> </td>
+<td> </td>
+</tr>
+
+<tr>
+<th> qemu-img only </th>
+<td>
+<pre style="font-size: 40%">
+┌───────────────┐ssh ┌────────────┐                           ┌───────────┐
+│ fedora-33.img │───▶│ qcow2 file │───▶ qemu-img convert ────▶│ local.img │
+└───────────────┘    └────────────┘                           └───────────┘
+</pre>
+</td>
+<td> </td>
+</tr>
+
+<tr>
+<th> sparsify + qemu-img </th>
+<td>
+<pre style="font-size: 40%">
+┌───────────────┐ssh ┌────────────┐
+│ fedora-33.img │───▶│ qcow2 file │◀─── virt-sparsify --in-place
+└───────────────┘    └────────────┘                           ┌───────────┐
+                                   ───▶ qemu-img convert ────▶│ local.img │
+                                                              └───────────┘
+</pre>
+</td>
+<td> </td>
+</tr>
+
+<tr>
+<th> nbdkit + nbdcopy </th>
+<td>
+<pre style="font-size: 40%">
+┌───────────────┐ssh ┌────────────┐
+│ fedora-33.img │───▶│ nbdkit cow │◀─── virt-sparsify --in-place
+└───────────────┘    └────────────┘                   ┌───────────┐
+                                   ───▶ nbdcopy ────▶ │ local.img │
+                                                      └───────────┘
+</pre>
+</td>
+<td> </td>
+</tr>
+</table>
diff --git a/2021-pipelines/4100-benchmark-A-results.html b/2021-pipelines/4100-benchmark-A-results.html
new file mode 100644 (file)
index 0000000..70c6c8c
--- /dev/null
@@ -0,0 +1,65 @@
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+<link rel="stylesheet" href="style.css" type="text/css"/>
+<script src="code.js" type="text/javascript"></script>
+
+<h1>Benchmark A: copying &mdash; results</h1>
+
+<style>
+table#bench {
+    width: 90%;
+}
+table#bench th {
+    vertical-align: top;
+}
+table#bench td.result {
+    text-align: right;
+}
+</style>
+
+<table id="bench">
+<tr>
+<th> scp </th>
+<td> <pre style="font-size: 60%">scp remote:fedora-33.img local.img</pre> </td>
+<td class="result"> 48m40 </td>
+</tr>
+
+<tr>
+<th> qemu-img only </th>
+<td>
+<pre style="font-size: 40%">
+┌───────────────┐ssh ┌────────────┐                           ┌───────────┐
+│ fedora-33.img │───▶│ qcow2 file │───▶ qemu-img convert ────▶│ local.img │
+└───────────────┘    └────────────┘                           └───────────┘
+</pre>
+</td>
+<td class="result"> 59m39 </td>
+</tr>
+
+<tr>
+<th> sparsify + qemu-img </th>
+<td>
+<pre style="font-size: 40%">
+┌───────────────┐ssh ┌────────────┐
+│ fedora-33.img │───▶│ qcow2 file │◀─── virt-sparsify --in-place
+└───────────────┘    └────────────┘                           ┌───────────┐
+                                   ───▶ qemu-img convert ────▶│ local.img │
+                                                              └───────────┘
+</pre>
+</td>
+<td class="result"> 2m21 </td>
+</tr>
+
+<tr>
+<th> nbdkit + nbdcopy </th>
+<td>
+<pre style="font-size: 40%">
+┌───────────────┐ssh ┌────────────┐
+│ fedora-33.img │───▶│ nbdkit cow │◀─── virt-sparsify --in-place
+└───────────────┘    └────────────┘                   ┌───────────┐
+                                   ───▶ nbdcopy ────▶ │ local.img │
+                                                      └───────────┘
+</pre>
+</td>
+<td class="result"> 3m49 </td>
+</tr>
+</table>
diff --git a/2021-pipelines/5000-ova-files.html b/2021-pipelines/5000-ova-files.html
new file mode 100644 (file)
index 0000000..d89b936
--- /dev/null
@@ -0,0 +1,28 @@
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+<link rel="stylesheet" href="style.css" type="text/css"/>
+<script src="code.js" type="text/javascript"></script>
+
+<h1>OVA files</h1>
+
+<pre>
+
+┌───guest.ova──────────┐
+│ guest.ovf            │
+│                      │
+│ disk1.raw (or .vmdk) │
+│                      │
+└──────────────────────┘
+</pre>
+
+<pre>
+tar file = header - file - header - file ...
+</pre>
+
+<pre>
+          nbdkit tar
+┌──────────┐filter┌────────────┐
+│ test.ova │─────▶│ qcow2 file │◀─── virt-sparsify --in-place
+└──────────┘      └────────────┘                            ┌───────────┐
+                                 ───▶ qemu-img convert ────▶│ local.img │
+                                                            └───────────┘
+</pre>
diff --git a/2021-pipelines/5100-benchmark-B.html b/2021-pipelines/5100-benchmark-B.html
new file mode 100644 (file)
index 0000000..26a2535
--- /dev/null
@@ -0,0 +1,45 @@
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+<link rel="stylesheet" href="style.css" type="text/css"/>
+<script src="code.js" type="text/javascript"></script>
+
+<h1>Benchmark B: local OVA file</h1>
+
+<style>
+table#bench {
+    width: 90%;
+}
+table#bench th {
+    vertical-align: top;
+}
+</style>
+
+<table id="bench">
+<tr>
+<th> cp </th>
+<td> <pre style="font-size: 60%">cp test.ova test2.ova</pre> </td>
+<td> </td>
+</tr>
+
+<tr>
+<th> tar </th>
+<td> <pre style="font-size: 60%">tar xf test.ova fedora-33.img</pre> </td>
+<td> </td>
+</tr>
+
+<tr>
+<th> nbdkit <br/>
++ sparsify <br/>
++ qemu-img </th>
+<td>
+<pre style="font-size: 40%">
+          nbdkit tar
+┌──────────┐filter┌────────────┐
+│ test.ova │─────▶│ qcow2 file │◀─── virt-sparsify --in-place
+└──────────┘      └────────────┘                            ┌───────────┐
+                                 ───▶ qemu-img convert ────▶│ local.img │
+                                                            └───────────┘
+</pre>
+</td>
+<td> </td>
+</tr>
+</table>
diff --git a/2021-pipelines/5200-benchmark-B-results.html b/2021-pipelines/5200-benchmark-B-results.html
new file mode 100644 (file)
index 0000000..6cba810
--- /dev/null
@@ -0,0 +1,48 @@
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+<link rel="stylesheet" href="style.css" type="text/css"/>
+<script src="code.js" type="text/javascript"></script>
+
+<h1>Benchmark B: local OVA file &mdash; results</h1>
+
+<style>
+table#bench {
+    width: 90%;
+}
+table#bench th {
+    vertical-align: top;
+}
+table#bench td.result {
+    text-align: right;
+}
+</style>
+
+<table id="bench">
+<tr>
+<th> cp </th>
+<td> <pre style="font-size: 60%">cp test.ova test2.ova</pre> </td>
+<td class="result"> 40s </td>
+</tr>
+
+<tr>
+<th> tar </th>
+<td> <pre style="font-size: 60%">tar xf test.ova fedora-33.img</pre> </td>
+<td class="result"> 43s </td>
+</tr>
+
+<tr>
+<th> nbdkit <br/>
++ sparsify <br/>
++ qemu-img </th>
+<td>
+<pre style="font-size: 40%">
+          nbdkit tar
+┌──────────┐filter┌────────────┐
+│ test.ova │─────▶│ qcow2 file │◀─── virt-sparsify --in-place
+└──────────┘      └────────────┘                            ┌───────────┐
+                                 ───▶ qemu-img convert ────▶│ local.img │
+                                                            └───────────┘
+</pre>
+</td>
+<td class="result"> 7.6s </td>
+</tr>
+</table>
index 447e397..1a51db9 100644 (file)
@@ -188,10 +188,10 @@ sparsification before doing the copy.
 Benchmark A
 ----------------------------------------------------------------------
 
-Now you might think this is all a bit obscure, but how does it apply
-to copying disk images.  In this first benchmark, I've compared
-copying a disk in several different ways to see which is fastest.  All
-of the copying happens between two idle machines, over a slow network.
+Now you might think this is all a bit obscure, but is it any good?
+In this first benchmark, I've compared copying a disk in several
+different ways to see which is fastest.  All of the copying happens
+between two idle machines, over a slow network.
 
 The full methodology is in the background notes that accompany this
 talk, which I'll link at the end.