Project

General

Profile

Bug #3090

VirtIO/vtnet: very poor IPv6 receiving performance (~100x slower)

Added by liweitianux 27 days ago. Updated 27 days ago.

Status:
In Progress
Priority:
Normal
Assignee:
Category:
Networking
Target version:
-
Start date:
10/23/2017
Due date:
% Done:

0%


Description

Hello,

I'm running DFly (4.8.0) on a VPS with both IPv4 and IPv6. However, I'm suffering poor *IPv6 receiving* performance (~100x slower!!), but IPv6 sending, IPv4 sending and receiving all perform very well.

I carried out several tests, and finally I'm quite sure that the problem exists in DFly's VirtIO driver.

I booted DFly (5.0), FreeBSD (11), and Arch Linux (201705) LiveCDs on my VPS, and configured basic IPv6 connection, then tried to download a 128 MB test file from the VPS provider's service. The followings are the test results:

OS (virtio) | download speed
------------+----------------------------
DFly (IPv6) | ~80 kB/s (NOTE: it's kB/s)
FBSD (IPv6) | ~85 MB/s
Arch (IPv6) | ~83 MB/s

In addition, I used "iperf3" to further test the sending/receiving bandwidth of my VPS (located in the Netherlands), against a iperf server in France (bouygues.iperf.fr):

OS/driver | DFly (virtio) | DFly (em)
-----------------+----------------+-----------
IPv4 - sending | ~240 Mb/s | ~170 Mb/s
IPv4 - receiving | ~400 Mb/s | ~430 Mb/s
IPv6 - sending | ~160 Mb/s | ~115 Mb/s
IPv6 - receiving | ~0.5 Mb/s (!!) | ~370 Mb/s

To confirm the problem, I switched the network driver of my VPS from "VirtIO" to "Intel PRO/1000" (i.e., "em" driver) and redo the tests, which gave me very impressing IPv6 performance!

NOTE: I did these tests yesterday and today, so the reported network bandwidth might vary much. But the VirtIO IPv6 receiving problem is very obvious!

I'm not sure whether this problem is due to the maybe out-of-date virtio driver (compared to FreeBSD's), or because it does not well integrate with the DFly system.

Cheers,
Aly


Related issues

Related to Bug #3089: vtnet(4) - disable TCP checksum offload by default In Progress 10/21/2017

History

#1 Updated by liweitianux 27 days ago

  • Related to Bug #3089: vtnet(4) - disable TCP checksum offload by default added

#2 Updated by vadaszi 27 days ago

  • Status changed from New to In Progress
  • Assignee set to vadaszi

Ok, I also cherry-picked 849f77c77acc4d5041fa638b364cb6a296a8051b to the DragonFly_RELEASE_4_8 git branch.

Also available in: Atom PDF