Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 28 Aug 2023 07:32:35 +0000
From:      Wei Hu <weh@microsoft.com>
To:        "freebsd-hackers@FreeBSD.org" <freebsd-hackers@freebsd.org>
Cc:        "freebsd-net@FreeBSD.org" <freebsd-net@freebsd.org>
Subject:   Very slow scp performance comparing to Linux
Message-ID:  <SI2P153MB0441858EC3FE24D5B7A6B34DBBE0A@SI2P153MB0441.APCP153.PROD.OUTLOOK.COM>

next in thread | raw e-mail | index | archive | help
Hi,

When I was testing a new NIC, I found the single stream scp performance was=
 almost 8 time slower than Linux on the RX side. Initially I thought it mig=
ht be something with the NIC. But when I switched to sending the file on lo=
calhost, the numbers stay the same.=20

Here I was sending a 2GB file from sender to receiver using scp.  FreeBSD i=
s a recent NON-DEBUG build from CURRENT. The Ubuntu Linux kernel is 6.2.0. =
Both run in HyperV VMs on the same type of hardware. The FreeBSD VM has 16 =
vcpus, while Ubuntu VM has 4 vcpu.

Sender		Receiver	throughput
Linux		FreeBSD 	70 MB/s
Linux		Linux 		550 MB/s
FreeBSD	FreeBSD	70 MB/s
FreeBSD	Linux		350 MB/s
FreeBSD  	localhost	70 MB/s
Linux		localhost	550 MB/s

>From theses test, it seems I can rule out the issue on NIC and its driver. =
Looks the FreeBSD kernel network stack is much slower than Linux on single =
stream TCP, or there are some problem with scp?

I also tried turning on following kernel parameters on FreeBSD kernel. But =
it makes no difference, neither do the other tcp cc algorithms such as htcp=
 and newreno.

net.inet.tcp.soreceive_stream=3D"1"
net.isr.maxthreads=3D"-1"
net.isr.bindthreads=3D"1"

net.inet.ip.intr_queue_maxlen=3D2048
net.inet.tcp.recvbuf_max=3D16777216
net.inet.tcp.recvspace=3D419430
net.inet.tcp.sendbuf_max=3D16777216
net.inet.tcp.sendspace=3D209715
kern.ipc.maxsockbuf=3D16777216

Any ideas?

Thanks,
Wei



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?SI2P153MB0441858EC3FE24D5B7A6B34DBBE0A>