Here are some more interesting numbers, concentrating on the memory
plugin and RAM disks. All are done using 8 threads and multi-conn, on
a single unloaded machine with 16 cores, using a Unix domain socket.
(1) The memory plugin using the sparse array, as implemented upstream
in 1.9.8:
read: IOPS=103k, BW=401MiB/s (420MB/s)(46.0GiB/120002msec)
write: IOPS=103k, BW=401MiB/s (420MB/s)(46.0GiB/120002msec)
(2) I moved the locking to around calls to the sparse array code, and
changed the thread model to parallel:
read: IOPS=112k, BW=437MiB/s (458MB/s)(51.2GiB/120001msec)
write: IOPS=112k, BW=437MiB/s (458MB/s)(51.2GiB/120001msec)
(3) I reimplemented the memory plugin using a simple malloc, which is
how it used to be in nbdkit <= 1.5.8:
read: IOPS=133k, BW=518MiB/s (544MB/s)(60.7GiB/120002msec)
write: IOPS=133k, BW=518MiB/s (543MB/s)(60.7GiB/120002msec)
(4) I ran fio directly against /dev/shm to get some idea of how much
performance we are losing by using NBD at all:
read: IOPS=1018k, BW=3978MiB/s (4171MB/s)(466GiB/120001msec)
write: IOPS=1018k, BW=3979MiB/s (4172MB/s)(466GiB/120001msec)
Rich.
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
Read my programming and virtualization blog:
http://rwmj.wordpress.com
virt-top is 'top' for virtual machines. Tiny program with many
powerful monitoring features, net stats, disk stats, logging, etc.
http://people.redhat.com/~rjones/virt-top