Приветствую.
Я не знаю, где этому треду большее место — в Admin или Linux-hardware, но вроде бы здесь основное подозрение на железо, а не на TCP.
Итак, есть роутер на QCA9880 (Mikrotik wAP ac) и ноутбук — Intel 8260 и QCA6174 (Killer 1535). Производительность замеряем iperf3 между ноутбуком (в прямой видимости от точки доступа) и NAS'ом в той же сети. Энергосбережение везде выключено, прошивки актуальные, ядро 4.9. Сетевой планировщик (queue discipline) — fq_codel (дефолт systemd), алгоритм управления загруженностью (TCP congestion control algorithm) — YeAH, хотя от его смены на Reno ничего не меняется.
Intel 8260, TCP, приём:
$ iperf3 -c server.9-20.lan -p 12200 -f M -t 20 -R
Connecting to host server.9-20.lan, port 12200
Reverse mode, remote host server.9-20.lan is sending
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-20.00 sec 950 MBytes 47.5 MBytes/sec 697 sender
[ 4] 0.00-20.00 sec 945 MBytes 47.2 MBytes/sec receiver
Intel 8260, TCP, передача:
$ iperf3 -c server.9-20.lan -p 12200 -f M -t 20
Connecting to host server.9-20.lan, port 12200
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-20.00 sec 639 MBytes 31.9 MBytes/sec 128 sender
[ 4] 0.00-20.00 sec 636 MBytes 31.8 MBytes/sec receiver
Intel 8260, UDP, приём:
$ iperf3 -c server.9-20.lan -p 12200 -f M -t 20 -R -u -b 0
Connecting to host server.9-20.lan, port 12200
Reverse mode, remote host server.9-20.lan is sending
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 4] 0.00-20.00 sec 1.38 GBytes 70.6 MBytes/sec 0.034 ms 262399/1023042 (26%)
[ 4] Sent 1023042 datagrams
Intel 8260, UDP, передача:
$ iperf3 -c server.9-20.lan -p 12200 -f M -t 20 -u -b 0
Connecting to host server.9-20.lan, port 12200
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 4] 0.00-20.00 sec 993 MBytes 49.6 MBytes/sec 0.010 ms 6090/718961 (0.85%)
[ 4] Sent 718961 datagrams
QCA6174, TCP, приём:
$ iperf3 -c server.9-20.lan -p 12200 -f M -t 20 -R
Connecting to host server.9-20.lan, port 12200
Reverse mode, remote host server.9-20.lan is sending
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-20.00 sec 737 MBytes 36.8 MBytes/sec 831 sender
[ 4] 0.00-20.00 sec 731 MBytes 36.5 MBytes/sec receiver
QCA6174, TCP, передача:
$ iperf3 -c server.9-20.lan -p 12200 -f M -t 20
Connecting to host server.9-20.lan, port 12200
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-20.00 sec 111 MBytes 5.56 MBytes/sec 10 sender
[ 4] 0.00-20.00 sec 110 MBytes 5.52 MBytes/sec receiver
QCA6174, UDP, приём:
$ iperf3 -c server.9-20.lan -p 12200 -f M -t 20 -R -u -b 0
Connecting to host server.9-20.lan, port 12200
Reverse mode, remote host server.9-20.lan is sending
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 4] 0.00-20.00 sec 1.44 GBytes 73.9 MBytes/sec 0.031 ms 461908/1069809 (43%)
[ 4] Sent 1069809 datagrams
QCA6174, UDP, передача:
$ iperf3 -c server.9-20.lan -p 12200 -f M -t 20 -u -b 0
Connecting to host server.9-20.lan, port 12200
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 4] 0.00-20.00 sec 630 MBytes 31.5 MBytes/sec 0.033 ms 972/456078 (0.21%)
[ 4] Sent 456078 datagrams
К этим результатам два вопроса. Во-первых, у Intel 8260 скорость на приём или при использовании UDP стабильно несколько выше, чем у QCA6174, хотя последний вроде Wave 2 и вообще подаётся как более производительный радиомодуль. Во-вторых, в случае TCP на передачу QCA6174 работает очень медленно, выше 8 МБ/с скорость передачи не поднималась ни разу.
Почему? Что может быть не так? Может быть, у драйвера ath10k или в TCP-стеке есть какие-то параметры, которые нужно потюнить?