Variance in throughput

Hello,

Got a strange (to me) speed issue, wondering what might be the cause(s)?

Is there anything I can look into as to why I get such a discrepancy between router to PC compared to PC to router?

I've tried disabling QoS and moved the txpower of client server up/down until achieved the best throughput + signal level.
Disabled power management on the client wifi device. But still I have a 100Mbit variance.
Even switched off all other network devices.

Router = 192.168.1.1 feeds LAN via 5g WiFi only.
Bridge = 192.168.1.2 a station, connected to router on 5g and providing ap to LAN on 2g
PC = 192.168.1.6 can either connect to the 2g Bridge AP or direct to router via 5g

Router = iperf -s

Router 5g AP <---> 5g sta Bridge 2g AP <---> PC

On PC connected to bridge 2g AP (itself connected to router via 5g).
iperf3 -c 192.168.1.1 -P3 -t11
[SUM] 0.00-11.00 sec 280 MBytes 214 Mbits/sec 0 sender
[SUM] 0.00-11.02 sec 272 MBytes 207 Mbits/sec receiver

In reverse, very similar, ok:

iperf3 -c 192.168.1.1 -P3 -t11 -R
[SUM] 0.00-11.01 sec 264 MBytes 201 Mbits/sec 393 sender
[SUM] 0.00-11.00 sec 257 MBytes 196 Mbits/sec receiver

Router 5g AP <---> PC

On PC connected to router 5g AP.
iperf3 -c 192.168.1.1 -P3 -t11

[SUM] 0.00-11.00 sec 339 MBytes 258 Mbits/sec 0 sender
[SUM] 0.00-11.04 sec 333 MBytes 253 Mbits/sec receiver

In reverse roughly half the speed:

iperf3 -c 192.168.1.1 -P3 -t11 -R
[SUM] 0.00-11.01 sec 200 MBytes 152 Mbits/sec 238 sender
[SUM] 0.00-11.00 sec 197 MBytes 150 Mbits/sec receiver

I've lost 100Mbit/sec somewhere, where did it go?

Just for info:

Router 5g AP <---> 5g sta Bridge

On Bridge connected to router 5g AP.
iperf3 -c 192.168.1.1 -P3 -t11
[SUM] 0.00-11.03 sec 530 MBytes 403 Mbits/sec 0 sender
[SUM] 0.00-11.04 sec 530 MBytes 403 Mbits/sec receiver

In reverse:
iperf3 -c 192.168.1.1 -P3 -t11 -R
[SUM] 0.00-11.01 sec 624 MBytes 475 Mbits/sec 0 sender
[SUM] 0.00-11.00 sec 613 MBytes 467 Mbits/sec receiver

Router = x86_64 Intel i7-6700 3.4GHz 8GB RAM - OpenWrt 22.03.2

Router:

03:00.0 Network controller [0280]: Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter [168c:003e] (rev 32)
	Subsystem: Dell Device [1028:0310]
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin A routed to IRQ 171
	Region 0: Memory at f7000000 (64-bit, non-prefetchable) [size=2M]
	Capabilities: [40] Power Management version 3
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [50] MSI: Enable+ Count=1/8 Maskable+ 64bit-
		Address: fee10004  Data: 4023
		Masking: 000000fe  Pending: 00000000
	Capabilities: [70] Express (v2) Endpoint, MSI 00
		DevCap:	MaxPayload 256 bytes, PhantFunc 0, Latency L0s unlimited, L1 <64us
			ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset- SlotPowerLimit 25W
		DevCtl:	CorrErr- NonFatalErr- FatalErr- UnsupReq-
			RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop-
			MaxPayload 256 bytes, MaxReadReq 512 bytes
		DevSta:	CorrErr+ NonFatalErr- FatalErr- UnsupReq+ AuxPwr+ TransPend+
		LnkCap:	Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <4us, L1 <64us
			ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp+
		LnkCtl:	ASPM Disabled; RCB 64 bytes, Disabled- CommClk+
			ExtSynch- ClockPM+ AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 2.5GT/s, Width x1
			TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
		DevCap2: Completion Timeout: Not Supported, TimeoutDis+ NROPrPrP- LTR+
			 10BitTagComp- 10BitTagReq- OBFF Via message, ExtFmt- EETLPPrefix-
			 EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
			 FRS- TPHComp- ExtTPHComp-
			 AtomicOpsCap: 32bit- 64bit- 128bitCAS-
		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- LTR+ 10BitTagReq- OBFF Disabled,
			 AtomicOpsCtl: ReqEn-
		LnkCap2: Supported Link Speeds: 2.5GT/s, Crosslink- Retimer- 2Retimers- DRS-
		LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
			 Compliance Preset/De-emphasis: -6dB de-emphasis, 0dB preshoot
		LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete- EqualizationPhase1-
			 EqualizationPhase2- EqualizationPhase3- LinkEqualizationRequest-
			 Retimer- 2Retimers- CrosslinkRes: unsupported
	Kernel driver in use: ath10k_pci




Client:

02:00.0 Network controller [0280]: Intel Corporation Wi-Fi 6 AX210/AX211/AX411 160MHz [8086:2725] (rev 1a)
	Subsystem: Intel Corporation Wi-Fi 6 AX210 160MHz [8086:0020]
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 17
	Region 0: Memory at f7400000 (64-bit, non-prefetchable) [size=16K]
	Capabilities: [c8] Power Management version 3
		Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
		Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [d0] MSI: Enable- Count=1/1 Maskable- 64bit+
		Address: 0000000000000000  Data: 0000
	Capabilities: [40] Express (v2) Endpoint, MSI 00
		DevCap:	MaxPayload 128 bytes, PhantFunc 0, Latency L0s <512ns, L1 unlimited
			ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset+ SlotPowerLimit 0.000W
		DevCtl:	CorrErr- NonFatalErr- FatalErr- UnsupReq-
			RlxdOrd- ExtTag- PhantFunc- AuxPwr+ NoSnoop+ FLReset-
			MaxPayload 128 bytes, MaxReadReq 128 bytes
		DevSta:	CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr+ TransPend-
		LnkCap:	Port #1, Speed 5GT/s, Width x1, ASPM L1, Exit Latency L1 <8us
			ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp+
		LnkCtl:	ASPM Disabled; RCB 64 bytes, Disabled- CommClk+
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 5GT/s (ok), Width x1 (ok)
			TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
		DevCap2: Completion Timeout: Range B, TimeoutDis+ NROPrPrP- LTR+
			 10BitTagComp- 10BitTagReq- OBFF Via WAKE#, ExtFmt- EETLPPrefix-
			 EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
			 FRS- TPHComp- ExtTPHComp-
			 AtomicOpsCap: 32bit- 64bit- 128bitCAS-
		DevCtl2: Completion Timeout: 16ms to 55ms, TimeoutDis- LTR- OBFF Disabled,
			 AtomicOpsCtl: ReqEn-
		LnkCap2: Supported Link Speeds: 2.5-5GT/s, Crosslink- Retimer- 2Retimers- DRS-
		LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-
			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
			 Compliance De-emphasis: -6dB
		LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete- EqualizationPhase1-
			 EqualizationPhase2- EqualizationPhase3- LinkEqualizationRequest-
			 Retimer- 2Retimers- CrosslinkRes: unsupported
	Capabilities: [80] MSI-X: Enable+ Count=16 Masked-
		Vector table: BAR=0 offset=00002000
		PBA: BAR=0 offset=00003000
	Capabilities: [100 v1] Advanced Error Reporting
		UESta:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UEMsk:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UESvrt:	DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
		CESta:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr-
		CEMsk:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+
		AERCap:	First Error Pointer: 00, ECRCGenCap- ECRCGenEn- ECRCChkCap- ECRCChkEn-
			MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap-
		HeaderLog: 00000000 00000000 00000000 00000000
	Capabilities: [14c v1] Latency Tolerance Reporting
		Max snoop latency: 0ns
		Max no snoop latency: 0ns
	Capabilities: [154 v1] L1 PM Substates
		L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+
			  PortCommonModeRestoreTime=30us PortTPowerOnTime=18us
		L1SubCtl1: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2- ASPM_L1.1-
			   T_CommonMode=0us LTR1.2_Threshold=0ns
		L1SubCtl2: T_PwrOn=10us
	Kernel driver in use: iwlwifi
	Kernel modules: iwlwifi

Thanks for any suggestions!

Please have a look at Best practices and tools for measuring wifi performance - #13 by Kimcha

"Where you run the testing tool server and client is important. [...]. For example, if you have a router with a weak CPU and run the iperf3 server on the router, then it's possible the speeds will be limited, because iperf3 itself uses up a large portion of the router's available CPU and starves the router of the CPU to achieve full wifi transmission rates." - Kimcha

In reverse roughly half the speed:

iperf3 -c 192.168.1.1 -P3 -t11 -R
[SUM] 0.00-11.01 sec 200 MBytes 152 Mbits/sec 238 sender
[SUM] 0.00-11.00 sec 197 MBytes 150 Mbits/sec receiver

This could also be explained by distance and walls. Your router might have for whatever reason lower signal sending power than hardware in your PC. As far as I am aware, by default iperf3 UPLOADS data from the client to the server (= data your PC sends). When using the reverse option, you measure the download (= data the router sends)

1 Like

Looking into the datasheet: https://www.qualcomm.com/content/dam/qcomm-martech/dm-assets/documents/qca6174a-product-brief_87-yb799-1-c.pdf

(Edit: deleted another idea, that was wrong, so ignore it)

1 Like

Thank you for the links! Have been going through the "best practices" and lots of great info there.

Must admit, I found that lowering the txpower to 15dBm on router and lowering it to 18dBm on client got the best results.
By best, I mean the highest "stable" throughput.

I can get 15% higher peak figures with things at 23dBm, but interestingly the signal fluctuates by -8dBm, pings go from average of 2ms to average of 7ms with some +50ms thrown in.

But either way (high/low tx) the variance between send/receive exists and remains quite high.

I'm tempted to try the much newer MT7921K card I have in the router and have another go with that now I'm a bit more able to know what to tweak.
Problem was, in previous tests with it (simply involving aerial sizes and locations) the old laptop qualcomm ac card had the MTK wooped. So not sure simply trying lower dBm will have that much effect, but its worth trying at least.

Failing that, perhaps looking into what 4x4 cards are available / suitable and are non-Intel / Broadcom / Realtek.

Should say, overall, am pretty happy with the QCA6174

1 Like