Netdev List
 help / color / mirror / Atom feed
* VSOCK benchmark and optimizations
@ 2019-04-01 16:32 Stefano Garzarella
  2019-04-02  4:19 ` Alex Bennée
  2019-04-03 12:34 ` [Qemu-devel] " Stefan Hajnoczi
  0 siblings, 2 replies; 7+ messages in thread
From: Stefano Garzarella @ 2019-04-01 16:32 UTC (permalink / raw)
  To: alex.bennee; +Cc: qemu devel list, netdev

Hi Alex,
I'm sending you some benchmarks and information about VSOCK CCing qemu-devel
and linux-netdev (maybe this info could be useful for others :))

One of the VSOCK advantages is the simple configuration: you don't need to set
up IP addresses for guest/host, and it can be used with the standard POSIX
socket API. [1]

I'm currently working on it, so the "optimized" values are still work in
progress and I'll send the patches upstream (Linux) as soon as possible.
(I hope in 1 or 2 weeks)

Optimizations:
+ reducing the number of credit update packets
  - RX side sent, on every packet received, an empty packet only to inform the
    TX side about the space in the RX buffer.
+ increase RX buffers size to 64 KB (from 4 KB)
+ merge packets to fill RX buffers

As benchmark tool I used iperf3 [2] modified with VSOCK support:

             host -> guest [Gbps]      guest -> host [Gbps]
pkt_size    before opt.  optimized    before opt.  optimized
  1K            0.5         1.6           1.4         1.4
  2K            1.1         3.1           2.3         2.5
  4K            2.0         5.6           4.2         4.4
  8K            3.2        10.2           7.2         7.5
  16K           6.4        14.2           9.4        11.3
  32K           9.8        18.9           9.2        17.8
  64K          13.8        22.9           8.8        25.0
  128K         17.6        24.5           7.7        25.7
  256K         19.0        24.8           8.1        25.6
  512K         20.8        25.1           8.1        25.4


How to reproduce:

host$ modprobe vhost_vsock
host$ qemu-system-x86_64 ... -device vhost-vsock-pci,guest-cid=3
      # Note: Guest CID should be >= 3
      # (0, 1 are reserved and 2 identify the host)

guest$ iperf3 --vsock -s

host$ iperf3 --vsock -c 3 -l ${pkt_size}      # host -> guest
host$ iperf3 --vsock -c 3 -l ${pkt_size} -R   # guest -> host


If you want, I can do a similar benchmark (with iperf3) using a networking
card (do you have a specific configuration?).

Let me know if you need more details!

Thanks,
Stefano

[1] https://wiki.qemu.org/Features/VirtioVsock
[2] https://github.com/stefano-garzarella/iperf/

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2019-04-04 10:47 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-04-01 16:32 VSOCK benchmark and optimizations Stefano Garzarella
2019-04-02  4:19 ` Alex Bennée
2019-04-02  7:37   ` Stefano Garzarella
2019-04-03 12:36     ` [Qemu-devel] " Stefan Hajnoczi
2019-04-04 10:47   ` Stefano Garzarella
2019-04-03 12:34 ` [Qemu-devel] " Stefan Hajnoczi
2019-04-03 15:10   ` Stefano Garzarella

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox