On Fri, Jul 27, 2018 at 10:36 PM Richard W.M. Jones <
address@hidden> wrote:
On Fri, Jul 27, 2018 at 09:53:32PM +0300, Nir Soffer wrote:
> I think performance is pretty good now, after I added efficient zeroing:
> https://gerrit.ovirt.org/c/92901/
> This should be available in 4.2.6.
This is great, thanks.
...
> I also tested uploading to raw disk using qemu-nbd on my dev setup with
> LIO storage over 1G nic.
> For reference, blkdiscard --zeroout takes 38.5 seconds on this setup.
>
> imageio example upload to /dev/nbd0[1]: 40.3 seconds
> qemu-img convert to /dev/nbd0: 61.5 seconds
> qemu-img convert to nbd+unix socket with unordered writes (-W): 87.3 seconds
> qemu-img convert to nbd+unix socket: 96.1 seconds
Interesting. Did you try nbdkit? I'm getting much greater
performance than qemu-nbd on my laptop - in fact it's comparable to
local copying:
$ rm -f /var/tmp/sock
$ truncate -s 6442450944 output
$ nbdkit file file=output -U /var/tmp/sock -f
$ time bash -c '(qemu-img convert -p -n fedora-27.img nbd:unix:/var/tmp/sock; sync)'
(100.00/100%)
real 0m9.555s
user 0m0.143s
sys 0m0.578s
$ time bash -c '( cp fedora-27.img output2; sync )'
real 0m9.254s
user 0m0.005s
sys 0m0.846s
Maybe I'm making a mistake in my test somewhere?
Looks like you test kernl page cache. I was testing with qemu-nbd -n
since we always disable the cache when writing or reading from shared storage.
I tried nbdkit with LV on RHEL 7.5, and it failed trying to zero with fallocate.
On Fedora 28 it behaves like qemu-nbd:
# blkdiscard --zeroout --length 6442450944 /dev/27837a03-64f9-4f2b-abb0-daa2195b01ae/f8dd86f5-cc91-48ea-b192-c4e6af826f8a
# src/nbdkit -f plugins/file/.libs/nbdkit-file-plugin.so file=/dev/27837a03-64f9-4f2b-abb0-daa2195b01ae/f8dd86f5-cc91-48ea-b192-c4e6af826f8a -U /tmp/nbdkit.sock
# blkdiscard --zeroout --length 6442450944 /dev/27837a03-64f9-4f2b-abb0-daa2195b01ae/f8dd86f5-cc91-48ea-b192-c4e6af826f8a
# time bash -c "(qemu-img convert -p -n -t none -f raw -O raw /var/tmp/fedora-27.img nbd:unix:/tmp/nbdkit.sock; sync)"
(100.00/100%)
real 1m26.518s
user 0m0.150s
sys 0m0.670s
# blkdiscard --zeroout --length 6442450944 /dev/27837a03-64f9-4f2b-abb0-daa2195b01ae/f8dd86f5-cc91-48ea-b192-c4e6af826f8a
# time bash -c "(qemu-img convert -p -n -t none -f raw -O raw -W /var/tmp/fedora-27.img nbd:unix:/tmp/nbdkit.sock; sync)"
(100.00/100%)
real 1m26.366s
user 0m0.148s
sys 0m0.631s
Nir