kern/175954: XENHVM xn network driver extreme packet loss during a slow download
Paul
M8R-67o0de at mailinator.com
Fri Feb 8 10:50:01 UTC 2013
>Number: 175954
>Category: kern
>Synopsis: XENHVM xn network driver extreme packet loss during a slow download
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Fri Feb 08 10:50:00 UTC 2013
>Closed-Date:
>Last-Modified:
>Originator: Paul
>Release: 9.1
>Organization:
>Environment:
FreeBSD local.server 9.1-RELEASE FreeBSD 9.1-RELEASE #0: Fri Feb 8 01:12:53 UTC 2013 root at local.server:/usr/obj/usr/src/sys/XENHVM amd64
>Description:
The xn0 PV network driver for freebsd has a bug where if the client is downloading slowly leading to really poor network performance.
I am guessing httpd is filling up the network buffer space with the large file, but the client is not downloading it fast enough.
Increasing the various network send/recv/mbuf buffers with sysctl has no effect.
#ping running from inside the freebsd guest ping the IP of xen host dom0
64 bytes from 10.0.0.1: icmp_seq=1303 ttl=64 time=234.603 ms
64 bytes from 10.0.0.1: icmp_seq=1304 ttl=64 time=204.760 ms
64 bytes from 10.0.0.1: icmp_seq=1305 ttl=64 time=261.683 ms
64 bytes from 10.0.0.1: icmp_seq=1306 ttl=64 time=47.769 ms
ping: sendto: No buffer space available
64 bytes from 10.0.0.1: icmp_seq=1308 ttl=64 time=436.514 ms
64 bytes from 10.0.0.1: icmp_seq=1309 ttl=64 time=72.970 ms
64 bytes from 10.0.0.1: icmp_seq=1310 ttl=64 time=82.359 ms
64 bytes from 10.0.0.1: icmp_seq=1311 ttl=64 time=272.854 ms
64 bytes from 10.0.0.1: icmp_seq=1312 ttl=64 time=328.472 ms
64 bytes from 10.0.0.1: icmp_seq=1313 ttl=64 time=122.783 ms
ping: sendto: No buffer space available
64 bytes from 10.0.0.1: icmp_seq=1315 ttl=64 time=84.061 ms
64 bytes from 10.0.0.1: icmp_seq=1316 ttl=64 time=70.805 ms
^C
--- 10.0.0.1 ping statistics ---
1317 packets transmitted, 1173 packets received, 10.9% packet loss
round-trip min/avg/max/stddev = 18.828/200.423/659.228/117.169 ms
>How-To-Repeat:
On the freebsd guest, run a http server such as apache or nginx and serve a large file, mine was 300mb.
On the xen host (dom0) run this command (10.0.0.2 is the IP of the freebsd guest)
wget -O /dev/null --limit-rate=1000K http://10.0.0.2/300mb.bin
>Fix:
The problem does not occur while using the GENERIC kernel.
It also does not occur if the wget command is run from a different VM, but thats preventing me from running a reverse proxy on the dom0.
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list