Nouvellement abonné FTTH chez OVH je rencontre un étrange problème de performance sur mes downloads via un seul flux TCP. Quoi que je fasse je suis autour des 80Mbit/s. Les upload dans les mêmes conditions me permettent de quasiment atteindre le Gbit/s. De même un download avec plusieurs flux TCP (par exemple un speedtest en mode multi) me permettent de quasi atteindre le Gbit/s.
Je suis sur collecte Kosc PPPoE via Altitude Infra (ex Covage) dans le 74. Je dois être un des premiers connectés de mon village donc j’imagine peu une saturation de l’arbre GPON. Ping aux alentours des 17ms.
Ce que j’ai essayé sans variation notable des performances:
- Tester depuis le routeur lui meme et depuis d’autres clients/os en Ethernet
- Utiliser d’autres ports/protocoles (http, https, iperf3)
- Utiliser IPv6
- Changer les paramètres MTU, MSS Clamping
- Faire les tests download a différentes heures du jour et de la nuit
- Remplacer mon routeur Banana PI R3/OpenWRT par une FrizBox avec config totalement vierge.
Un test avec iperf3 en UDP me permet d’atteindre le Gbit/s.
J’avoue un peu être a court d’idée pour comprendre ce qui se passe.
Quelques captures de sessions de test
Ping
root@bpi:~# ping www.ovh.com
PING www.ovh.com (198.27.92.1): 56 data bytes
64 bytes from 198.27.92.1: seq=0 ttl=55 time=16.939 ms
64 bytes from 198.27.92.1: seq=1 ttl=55 time=17.234 ms
64 bytes from 198.27.92.1: seq=2 ttl=55 time=17.196 ms
64 bytes from 198.27.92.1: seq=3 ttl=55 time=16.861 ms
64 bytes from 198.27.92.1: seq=4 ttl=55 time=16.888 ms
64 bytes from 198.27.92.1: seq=5 ttl=55 time=16.863 ms
64 bytes from 198.27.92.1: seq=6 ttl=55 time=16.960 ms
^C
--- www.ovh.com ping statistics ---
7 packets transmitted, 7 packets received, 0% packet loss
round-trip min/avg/max = 16.861/16.991/17.234 ms
Download TCP
root@bpi:~# iperf3 -4 -c proof.ovh.net -p 5210 -R -V
iperf 3.15
Linux bpi 5.15.134 #0 SMP Mon Oct 9 21:45:35 2023 aarch64
Control connection MSS 1440
Time: Tue, 17 Oct 2023 17:18:31 UTC
Connecting to host proof.ovh.net, port 5210
Reverse mode, remote host proof.ovh.net is sending
Cookie: pyq2ahzz3m2wqbt7nminckuobd4jwnn7c3zg
TCP MSS: 1440 (default)
[ 5] local 109.190.106.43 port 58556 connected to 141.95.207.211 port 5210
Starting Test: protocol: TCP, 1 streams, 131072 byte blocks, omitting 0 seconds, 10 second test, tos 0
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 21.2 MBytes 178 Mbits/sec
[ 5] 1.00-2.01 sec 10.6 MBytes 88.8 Mbits/sec
[ 5] 2.01-3.01 sec 8.12 MBytes 67.9 Mbits/sec
[ 5] 3.01-4.00 sec 9.62 MBytes 81.6 Mbits/sec
[ 5] 4.00-5.00 sec 7.00 MBytes 58.5 Mbits/sec
[ 5] 5.00-6.01 sec 8.12 MBytes 67.6 Mbits/sec
[ 5] 6.01-7.00 sec 8.38 MBytes 71.0 Mbits/sec
[ 5] 7.00-8.01 sec 11.0 MBytes 91.4 Mbits/sec
[ 5] 8.01-9.00 sec 8.88 MBytes 75.1 Mbits/sec
[ 5] 9.00-10.01 sec 6.50 MBytes 54.0 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
Test Complete. Summary Results:
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.07 sec 103 MBytes 86.0 Mbits/sec 19 sender
[ 5] 0.00-10.01 sec 99.5 MBytes 83.4 Mbits/sec receiver
snd_tcp_congestion cubic
rcv_tcp_congestion cubic
Download UDP
root@bpi:~# iperf3 -4 -c proof.ovh.net -p 5210 -R -V -u -b 1000M
iperf 3.15
Linux bpi 5.15.134 #0 SMP Mon Oct 9 21:45:35 2023 aarch64
Control connection MSS 1440
Setting UDP block size to 1440
Time: Tue, 17 Oct 2023 17:33:19 UTC
Connecting to host proof.ovh.net, port 5210
Reverse mode, remote host proof.ovh.net is sending
Cookie: rxz2vwdbogopno35qrma3mkt7wuoz5znzvnb
Target Bitrate: 1000000000
[ 5] local 109.190.106.43 port 41379 connected to 141.95.207.211 port 5210
Starting Test: protocol: UDP, 1 streams, 1440 byte blocks, omitting 0 seconds, 10 second test, tos 0
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-1.00 sec 113 MBytes 951 Mbits/sec 0.005 ms 6774/89344 (7.6%)
[ 5] 1.00-2.00 sec 113 MBytes 951 Mbits/sec 0.003 ms 4236/86796 (4.9%)
[ 5] 2.00-3.00 sec 113 MBytes 951 Mbits/sec 0.057 ms 4252/86811 (4.9%)
[ 5] 3.00-4.00 sec 113 MBytes 951 Mbits/sec 0.054 ms 4264/86803 (4.9%)
[ 5] 4.00-5.00 sec 113 MBytes 951 Mbits/sec 0.045 ms 4256/86807 (4.9%)
[ 5] 5.00-6.00 sec 113 MBytes 951 Mbits/sec 0.005 ms 4265/86804 (4.9%)
[ 5] 6.00-7.00 sec 113 MBytes 951 Mbits/sec 0.005 ms 4246/86811 (4.9%)
[ 5] 7.00-8.00 sec 113 MBytes 951 Mbits/sec 0.004 ms 4247/86805 (4.9%)
[ 5] 8.00-9.00 sec 113 MBytes 951 Mbits/sec 0.009 ms 4252/86801 (4.9%)
[ 5] 9.00-10.00 sec 113 MBytes 951 Mbits/sec 0.007 ms 4244/86807 (4.9%)
- - - - - - - - - - - - - - - - - - - - - - - - -
Test Complete. Summary Results:
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-10.07 sec 1.17 GBytes 1000 Mbits/sec 0.000 ms 0/0 (0%) sender
[ 5] 0.00-10.00 sec 1.11 GBytes 951 Mbits/sec 0.007 ms 45036/870589 (5.2%) receiver
Upload TCP
root@bpi:~# iperf3 -4 -c proof.ovh.net -p 5210 -V
iperf 3.15
Linux bpi 5.15.134 #0 SMP Mon Oct 9 21:45:35 2023 aarch64
Control connection MSS 1440
Time: Tue, 17 Oct 2023 17:44:00 UTC
Connecting to host proof.ovh.net, port 5210
Cookie: eixxkbazkppmuty66vskughde2xbehcsuzac
TCP MSS: 1440 (default)
[ 5] local 109.190.106.43 port 38256 connected to 141.95.207.211 port 5210
Starting Test: protocol: TCP, 1 streams, 131072 byte blocks, omitting 0 seconds, 10 second test, tos 0
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 99.8 MBytes 837 Mbits/sec 0 2.43 MBytes
[ 5] 1.00-2.00 sec 111 MBytes 933 Mbits/sec 0 2.43 MBytes
[ 5] 2.00-3.00 sec 111 MBytes 932 Mbits/sec 0 2.43 MBytes
[ 5] 3.00-4.00 sec 110 MBytes 924 Mbits/sec 0 2.43 MBytes
[ 5] 4.00-5.00 sec 111 MBytes 933 Mbits/sec 0 2.43 MBytes
[ 5] 5.00-6.00 sec 111 MBytes 933 Mbits/sec 0 2.43 MBytes
[ 5] 6.00-7.00 sec 110 MBytes 923 Mbits/sec 0 2.43 MBytes
[ 5] 7.00-8.00 sec 111 MBytes 933 Mbits/sec 0 2.43 MBytes
[ 5] 8.00-9.00 sec 111 MBytes 933 Mbits/sec 0 2.43 MBytes
[ 5] 9.00-10.00 sec 111 MBytes 933 Mbits/sec 0 2.43 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
Test Complete. Summary Results:
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 1.07 GBytes 921 Mbits/sec 0 sender
[ 5] 0.00-10.05 sec 1.07 GBytes 916 Mbits/sec receiver
CPU Utilization: local/sender 10.6% (0.0%u/10.6%s), remote/receiver 0.2% (0.0%u/0.2%s)
snd_tcp_congestion cubic
rcv_tcp_congestion cubic