[Bloat] goresponsiveness learned a few tricks...

Sebastian Moeller moeller0 at gmx.de
Mon Jan 8 14:41:00 EST 2024

Just a quick shoutout to Will Hawkins goresponsiveness effort (h++ps://github.com/network-quality/goresponsiveness: open source go implementation along the lines of the RPM IETF responsiveness draft (h++ps://github.com/network-quality/draft-ietf-ippm-responsiveness).

The goal I think is a quick latency under working conditions/latency under load for the rest of us. I think the draft likely will get a last call soon, so whoever wants to add something to the spec or just wants to comment, now would be a good time:

goresponsiveness is currently acquiring a few nice features, like the ability to compare the latency between idle and working conditions, run both saturating loads concurrently, and to report the sub results for the "self" probes (measuring latency within the load generating connection/flow) and the "foreign" probes (measuring latency outside of the load generating flows)

bash-3.2$ ./networkQuality --relative-rpm --rpm.parallel --config mensura.cdn-apple.com --port 443 --path /api/v1/gm/config --rpm.timeout 120 --extended-stats --rpm.mnp 32 --logger-filename go_networkQuality_20231228_223707 --detailed
01-08-2024 19:37:07 UTC Go Responsiveness to mensura.cdn-apple.com:443...
Baseline RPM:  2813 (P90)
Baseline RPM:  3888 (Single-Sided 5% Trimmed Mean)
	Throughput: 80.367 Mbps (10.046 MBps), using 13 parallel connections.
	Extended Statistics:
		Maximum Segment Size: 1208
		Total Bytes Retransmitted: 2860
		Retransmission Ratio: 0.25%
		Total Bytes Reordered: 140968234
		Average RTT: 34.30769230769231
	RPM: 264 (P90)
	RPM: 509 (Single-Sided 5% Trimmed Mean)
	Throughput: 30.124 Mbps (3.766 MBps), using 9 parallel connections.
	Extended Statistics:
		Maximum Segment Size: 1208
		Total Bytes Retransmitted: 466855
		Retransmission Ratio: 0.95%
		Total Bytes Reordered: 700
		Average RTT: 37
	RPM: 676 (P90)
	RPM: 2536 (Single-Sided 5% Trimmed Mean)
Final RPM Calculation stats:
	Total Self Probes:            933
	Total Foreign Probes:         2799
	Trimmed Self Probes Count:    46
	Trimmed Foreign Probes Count: 139
	P90 Self RTT:                 0.379444841
	P90 Foreign RTT:              0.031294024999999996
	Trimmed Mean Self RTT:        0.035124
	Trimmed Mean Foreign RTT:     0.017979

Final RPM: 292 (P90)
Final RPM: 2260 (Single-Sided 5% Trimmed Mean)
Final RPM (Self Only): 158 (P90)
Final RPM (Self Only): 1708 (Single-Sided 5% Trimmed Mean)
Final RPM (Foreign Only): 1917 (P90)
Final RPM (Foreign Only): 3337 (Single-Sided 5% Trimmed Mean)
Working Conditions RPM Effect:   162% (P90)
Working Conditions RPM Effect:    53% (Single-Sided 5% Trimmed Mean)

The beauty of the self and foreign reports is that here we can see that my cake'd upstream does a decent job to preserve foreign responsiveness while in the self responsiveness we see how TCP self-congests like there is no tomorrow... Please ignore the download direction, this is over a 100 Mbps USB ethernet dongle and my true download shaper is set to 105 Mbps, so this is mostly the bad USB dongle in action...

More information about the Bloat mailing list