diff options
Diffstat (limited to 'results/classifier/accel-gemma3:12b/kvm/597351')
| -rw-r--r-- | results/classifier/accel-gemma3:12b/kvm/597351 | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/results/classifier/accel-gemma3:12b/kvm/597351 b/results/classifier/accel-gemma3:12b/kvm/597351 new file mode 100644 index 000000000..9d80328ca --- /dev/null +++ b/results/classifier/accel-gemma3:12b/kvm/597351 @@ -0,0 +1,31 @@ + +Slow UDP performance with virtio device + +I'm working on an app that is very sensitive to round-trip latency +between the guest and host, and qemu/kvm seems to be significantly +slower than it needs to be. + +The attached program is a ping/pong over UDP. Call it with a single +argument to start a listener/echo server on that port. With three +arguments it becomes a counted "pinger" that will exit after a +specified number of round trips for performance measurements. For +example: + + $ gcc -o udp-pong udp-pong.c + $ ./udp-pong 12345 & # start a listener on port 12345 + $ time ./udp-pong 127.0.0.1 12345 1000000 # time a million round trips + +When run on the loopback device on a single machine (true on the host +or within a guest), I get about 100k/s. + +When run across a port forward using "user" networking on qemu (or +kvm, the performance is the same) and the default rtl8139 driver (both +the host and guest are Ubuntu Lucid), I get about 10k/s. This seems +very slow, but perhaps unavoidably so? + +When run in the same configuration using the "virtio" driver, I get +only 2k/s. This is almost certainly a bug in the virtio driver, given +that it's a paravirtualized device that is 5x slower than the "slow" +hardware emulation. + +I get no meaningful change in performance between kvm/qemu. \ No newline at end of file |