On Sun, Feb 05, 2023 at 04:35:41PM +0000, Richard W.M. Jones wrote:
I'm still adding instrumentation to see if the theory above is
right,
plus I have no idea how to fix this.
Turns out I didn't need to add instrumentation. Simply forcing
nbdcopy to use at most 1 request per connection (-R 1) recovers all
the performance.
$ time ./nbdkit -r -U - curl file:/var/tmp/big --run 'nbdcopy --no-extents -R 1 -p
"$uri" null:'
I still have no good idea how to solve this. Somehow I had to adjust
the libcurl handle pool so that it isn't first-come first-served, but
prefers to spread available handles across connections.
Rich.
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
Read my programming and virtualization blog:
http://rwmj.wordpress.com
virt-builder quickly builds VMs from scratch
http://libguestfs.org/virt-builder.1.html