From 46cf79a73451ba83283235982387a07ef04e04a9 Mon Sep 17 00:00:00 2001 From: Manuel Bentele Date: Wed, 29 May 2019 00:24:19 +0200 Subject: Added loop device vs. nbd benchmark read performance measurements --- analysis/benchmark_loop_nbd.txt | 144 +++++++++++++++++++++++++++++++++++++++- 1 file 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 -- cgit v1.2.3-55-g7522