summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--analysis/benchmark_loop_nbd.txt144
1 files changed, 141 insertions, 3 deletions
diff --git a/analysis/benchmark_loop_nbd.txt b/analysis/benchmark_loop_nbd.txt
index 22372ec..138dd80 100644
--- a/analysis/benchmark_loop_nbd.txt
+++ b/analysis/benchmark_loop_nbd.txt
@@ -5,8 +5,8 @@ Loop vs. NBD benchmark
The benchmark compares the performance of the loop block device driver with
the network block device driver using qemu-nbd version 4.0.0 and Linux kernel
version 5.1.2. The performance was determined by the data throughput of write
-operations to preallocated disk image files (raw, qcow2) using either the
-loop device or the nbd driver.
+and read operations to preallocated disk image files (raw, qcow2) using either
+the loop device or the nbd driver.
The results were mesured on an Intel(R) Core(TM) i5-3570 CPU @ 3.40GHz with
SSD storage.
@@ -27,7 +27,7 @@ Preparation:
===============================================================================
-Results:
+Write perfromance results:
~$ dd if=/dev/zero of=/dev/loop0 bs=100M count=1 oflag=direct
1+0 records in
@@ -46,6 +46,23 @@ Results:
-------------------------------------------------------------------------------
+~$ dd if=/dev/zero of=/dev/loop0 bs=4096 count=1000 oflag=direct
+ 1000+0 records in
+ 1000+0 records out
+ 4096000 bytes (4.1 MB, 3.9 MiB) copied, 0.0431999 s, 94.8 MB/s
+
+~$ dd if=/dev/zero of=/dev/nbd0 bs=4096 count=1000 oflag=direct
+ 1000+0 records in
+ 1000+0 records out
+ 4096000 bytes (4.1 MB, 3.9 MiB) copied, 0.937009 s, 4.4 MB/s
+
+~$ dd if=/dev/zero of=/dev/nbd1 bs=4096 count=1000 oflag=direct
+ 1000+0 records in
+ 1000+0 records out
+ 4096000 bytes (4.1 MB, 3.9 MiB) copied, 0.927286 s, 4.4 MB/s
+
+-------------------------------------------------------------------------------
+
~$ dd if=/dev/zero of=/dev/loop0 bs=512 count=1000 oflag=direct
1000+0 records in
1000+0 records out
@@ -80,6 +97,23 @@ Results:
-------------------------------------------------------------------------------
+~$ dd if=/dev/zero of=/dev/loop0 bs=4096 count=1000 oflag=dsync
+ 1000+0 records in
+ 1000+0 records out
+ 4096000 bytes (4.1 MB, 3.9 MiB) copied, 1.1858 s, 3.5 MB/s
+
+~$ dd if=/dev/zero of=/dev/nbd0 bs=4096 count=1000 oflag=dsync
+ 1000+0 records in
+ 1000+0 records out
+ 4096000 bytes (4.1 MB, 3.9 MiB) copied, 1.0901 s, 3.8 MB/s
+
+~$ dd if=/dev/zero of=/dev/nbd1 bs=4096 count=1000 oflag=dsync
+ 1000+0 records in
+ 1000+0 records out
+ 4096000 bytes (4.1 MB, 3.9 MiB) copied, 0.997281 s, 4.1 MB/s
+
+-------------------------------------------------------------------------------
+
~$ dd if=/dev/zero of=/dev/loop0 bs=512 count=1000 oflag=dsync
1000+0 records in
1000+0 records out
@@ -94,3 +128,107 @@ Results:
1000+0 records in
1000+0 records out
512000 bytes (512 kB, 500 KiB) copied, 0.934727 s, 548 kB/s
+
+===============================================================================
+
+Read performance results:
+
+~$ dd of=/dev/null if=/dev/loop0 bs=100M count=1 iflag=dsync
+ 1+0 records in
+ 1+0 records out
+ 104857600 bytes (105 MB, 100 MiB) copied, 0.0727356 s, 1.4 GB/s
+
+~$ dd of=/dev/null if=/dev/nbd0 bs=100M count=1 iflag=dsync
+ 1+0 records in
+ 1+0 records out
+ 104857600 bytes (105 MB, 100 MiB) copied, 0.0378285 s, 2.8 GB/s
+
+~$ dd of=/dev/null if=/dev/nbd1 bs=100M count=1 iflag=dsync
+ 1+0 records in
+ 1+0 records out
+ 104857600 bytes (105 MB, 100 MiB) copied, 0.0388594 s, 2.7 GB/s
+
+-------------------------------------------------------------------------------
+
+~$ dd of=/dev/null if=/dev/loop0 bs=4096 count=1000 iflag=dsync
+ 1000+0 records in
+ 1000+0 records out
+ 4096000 bytes (4.1 MB, 3.9 MiB) copied, 0.0173998 s, 235 MB/s
+
+~$ dd of=/dev/null if=/dev/nbd0 bs=4096 count=1000 iflag=dsync
+ 1000+0 records in
+ 1000+0 records out
+ 4096000 bytes (4.1 MB, 3.9 MiB) copied, 0.00280802 s, 1.5 GB/s
+
+~$ dd of=/dev/null if=/dev/nbd1 bs=4096 count=1000 iflag=dsync
+ 1000+0 records in
+ 1000+0 records out
+ 4096000 bytes (4.1 MB, 3.9 MiB) copied, 0.00285353 s, 1.4 GB/s
+
+-------------------------------------------------------------------------------
+
+~$ dd of=/dev/null if=/dev/loop0 bs=512 count=1000 iflag=dsync
+ 1000+0 records in
+ 1000+0 records out
+ 512000 bytes (512 kB, 500 KiB) copied, 0.0177883 s, 28.8 MB/s
+
+~$ dd of=/dev/null if=/dev/nbd0 bs=512 count=1000 iflag=dsync
+ 1000+0 records in
+ 1000+0 records out
+ 512000 bytes (512 kB, 500 KiB) copied, 0.00234241 s, 219 MB/s
+
+~$ dd of=/dev/null if=/dev/nbd1 bs=512 count=1000 iflag=dsync
+ 1000+0 records in
+ 1000+0 records out
+ 512000 bytes (512 kB, 500 KiB) copied, 0.00245659 s, 208 MB/s
+
+-------------------------------------------------------------------------------
+
+~$ dd of=/dev/null if=/dev/loop0 bs=100M count=1 iflag=direct
+ 1+0 records in
+ 1+0 records out
+ 104857600 bytes (105 MB, 100 MiB) copied, 0.0402695 s, 2.6 GB/s
+
+~$ dd of=/dev/null if=/dev/nbd0 bs=100M count=1 iflag=direct
+ 1+0 records in
+ 1+0 records out
+ 104857600 bytes (105 MB, 100 MiB) copied, 0.0350349 s, 3.0 GB/s
+
+~$ dd of=/dev/null if=/dev/nbd1 bs=100M count=1 iflag=direct
+ 1+0 records in
+ 1+0 records out
+ 104857600 bytes (105 MB, 100 MiB) copied, 0.0363636 s, 2.9 GB/s
+
+-------------------------------------------------------------------------------
+
+~$ dd of=/dev/null if=/dev/loop0 bs=4096 count=1000 iflag=direct
+ 1000+0 records in
+ 1000+0 records out
+ 4096000 bytes (4.1 MB, 3.9 MiB) copied, 0.0296045 s, 138 MB/s
+
+~$ dd of=/dev/null if=/dev/nbd0 bs=4096 count=1000 iflag=direct
+ 1000+0 records in
+ 1000+0 records out
+ 4096000 bytes (4.1 MB, 3.9 MiB) copied, 0.0695273 s, 58.9 MB/s
+
+~$ dd of=/dev/null if=/dev/nbd1 bs=4096 count=1000 iflag=direct
+ 1000+0 records in
+ 1000+0 records out
+ 4096000 bytes (4.1 MB, 3.9 MiB) copied, 0.0696438 s, 58.8 MB/s
+
+-------------------------------------------------------------------------------
+
+~$ dd of=/dev/null if=/dev/loop0 bs=512 count=1000 iflag=direct
+ 1000+0 records in
+ 1000+0 records out
+ 512000 bytes (512 kB, 500 KiB) copied, 0.0288066 s, 17.8 MB/s
+
+~$ dd of=/dev/null if=/dev/nbd0 bs=512 count=1000 iflag=direct
+ 1000+0 records in
+ 1000+0 records out
+ 512000 bytes (512 kB, 500 KiB) copied, 0.0452972 s, 11.3 MB/s
+
+~$ dd of=/dev/null if=/dev/nbd1 bs=512 count=1000 iflag=direct
+ 1000+0 records in
+ 1000+0 records out
+ 512000 bytes (512 kB, 500 KiB) copied, 0.0485223 s, 10.6 MB/s