[Starlink] [Bloat] goresponsiveness learned a few tricks...
Sebastian Moeller
moeller0 at gmx.de
Tue Jan 9 03:31:48 EST 2024
Hi Dave,
> On Jan 8, 2024, at 22:08, Dave Collier-Brown via Starlink <starlink at lists.bufferbloat.net> wrote:
>
> Cool: I got
>
> 01-08-2024 21:04:41 UTC Go Responsiveness to mensura.cdn-apple.com:443...
> Results:
> ========
> Download:
> Throughput: 150.234 Mbps (18.779 MBps), using 8 parallel connections.
> RPM: 624 (P90)
> RPM: 1005 (Single-Sided 5% Trimmed Mean)
> ========
> Upload:
> Throughput: 13.124 Mbps (1.641 MBps), using 8 parallel connections.
> RPM: 360 (P90)
> RPM: 1210 (Single-Sided 5% Trimmed Mean)
> ========
> Final RPM: 392 (P90)
> Final RPM: 1124 (Single-Sided 5% Trimmed Mean)
>
>
> Now all I have to do is figure out what it means (;-))
RPM is essentially defined as the inverse of latency averaged over:
download saturation: self latency, foreign latency
upload saturation: self latency, foreign latency
self latency is measuring latency from within the load bearing flows, while foreign latency measures against flows not (deeply) involved in the saturating load.
The actual transformation is 60000/RTT[ms] => RPM or 60000/RPM => RTT[ms].
So your numbers mean:
Download:
RTT(P90) 60000/624 = 96.15 ms
RTT(sTR5) 60000/1005 = 59.70 ms
Upload:
RTT(P90) 60000/360 = 166.67 ms
RTT(sTR5) 60000/1210 = 49.59 ms
Download:
RTT(P90) 60000/392 = 153.06 ms
RTT(sTR5) 60000/1124 = 53.38 ms
As expected the 90 percentile values are considerably lower than the (fancy) averages. Without splitting out self and foreign values it is hard to figure out whether that is mostly caused by inter- or intra-flow congestion, but there is a current branch (final_self_and_foreign_rpms) that helps out there:
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-09-2024 07:20:11 UTC Go Responsiveness to mensura.cdn-apple.com:443...
Baseline RPM: 4786 (P90)
Baseline RPM: 8385 (Single-Sided 5% Trimmed Mean)
Warning: Could not fetch the extended stats for a probe: OOPS: Could not get the TCP info for the connection (not a TLS connection)
Warning: Could not fetch the extended stats for a probe: OOPS: Could not get the TCP info for the connection (not a TLS connection)
Warning: Could not fetch the extended stats for a probe: OOPS: Could not get the TCP info for the connection (not a TLS connection)
Warning: Could not fetch the extended stats for a probe: OOPS: Could not get the TCP info for the connection (not a TLS connection)
Warning: Could not fetch the extended stats for a probe: OOPS: Could not get the TCP info for the connection (not a TLS connection)
Warning: Could not fetch the extended stats for a probe: OOPS: Could not get the TCP info for the connection (not a TLS connection)
Warning: Could not fetch the extended stats for a probe: OOPS: Could not get the TCP info for the connection (not a TLS connection)
Warning: Could not fetch the extended stats for a probe: OOPS: Could not get the TCP info for the connection (not a TLS connection)
Warning: Could not fetch the extended stats for a probe: OOPS: Could not get the TCP info for the connection (not a TLS connection)
Warning: Could not fetch the extended stats for a probe: OOPS: Could not get the TCP info for the connection (not a TLS connection)
Warning: Could not fetch the extended stats for a probe: OOPS: Could not get the TCP info for the connection (not a TLS connection)
Warning: Could not fetch the extended stats for a probe: OOPS: Could not get the TCP info for the connection (not a TLS connection)
Warning: Could not fetch the extended stats for a probe: OOPS: Could not get the TCP info for the connection (not a TLS connection)
Warning: Could not fetch the extended stats for a probe: OOPS: Could not get the TCP info for the connection (not a TLS connection)
Warning: Could not fetch the extended stats for a probe: OOPS: Could not get the TCP info for the connection (not a TLS connection)
Warning: Could not fetch the extended stats for a probe: OOPS: Could not get the TCP info for the connection (not a TLS connection)
Results:
========
Download:
Note: Test did not run to stability, these results are estimates.
Throughput: 15.364 Mbps (1.920 MBps), using 32 parallel connections.
Extended Statistics:
Maximum Segment Size: 1368
Total Bytes Retransmitted: 2811
Retransmission Ratio: 0.11%
Total Bytes Reordered: 333592209
Average RTT: 192.0625
RPM Calculation stats:
Total Self Probes: 4944
Total Foreign Probes: 14832
Trimmed Self Probes Count: 247
Trimmed Foreign Probes Count: 741
P90 Self RTT: 6.849031s
P90 Foreign RTT: 0.601590s
P90 RTT: 3.725311s
Trimmed Mean Self RTT: 1.906785s
Trimmed Mean Foreign RTT: 0.132828s
Trimmed Mean RTT: 1.019806s
RPM: 16 (P90)
RPM: 59 (Single-Sided 5% Trimmed Mean)
========
Upload:
Throughput: 32.503 Mbps (4.063 MBps), using 29 parallel connections.
Extended Statistics:
Maximum Segment Size: 1368
Total Bytes Retransmitted: 1024727
Retransmission Ratio: 0.24%
Total Bytes Reordered: 461083
Average RTT: 176.17241379310346
RPM Calculation stats:
Total Self Probes: 7063
Total Foreign Probes: 21189
Trimmed Self Probes Count: 353
Trimmed Foreign Probes Count: 1059
P90 Self RTT: 0.770294s
P90 Foreign RTT: 0.667592s
P90 RTT: 0.718943s
Trimmed Mean Self RTT: 0.112447s
Trimmed Mean Foreign RTT: 0.120068s
Trimmed Mean RTT: 0.116258s
RPM: 83 (P90)
RPM: 516 (Single-Sided 5% Trimmed Mean)
========
Final RPM Calculation stats:
Total Self Probes: 12007
Total Foreign Probes: 36021
Trimmed Self Probes Count: 600
Trimmed Foreign Probes Count: 1801
P90 Self RTT: 5.504198s
P90 Foreign RTT: 0.635901s
P90 RTT: 3.070049s
Trimmed Mean Self RTT: 0.119163s
Trimmed Mean Foreign RTT: 0.123304s
Trimmed Mean RTT: 0.121233s
Final RPM: 20 (P90) RTT: 3.070049s
Final RPM: 495 (Single-Sided 5% Trimmed Mean) RTT: 0.121233s
Final RPM (Self Only): 11 (P90) RTT: 5.504198s
Final RPM (Self Only): 504 (Single-Sided 5% Trimmed Mean) RTT: 0.119163s
Final RPM (Foreign Only): 94 (P90) RTT: 0.635901s
Final RPM (Foreign Only): 487 (Single-Sided 5% Trimmed Mean) RTT: 0.123304s
Working Conditions RPM Effect: 198% (P90)
Working Conditions RPM Effect: 178% (Single-Sided 5% Trimmed Mean)
>
> --dave
>
> On 2024-01-08 14:45, Dave Taht via Starlink wrote:
>> ---------- Forwarded message ---------
>> From: Sebastian Moeller via Bloat
>> <bloat at lists.bufferbloat.net>
>>
>> Date: Mon, Jan 8, 2024 at 2:41 PM
>> Subject: [Bloat] goresponsiveness learned a few tricks...
>> To: Dave Taht via Bloat
>> <bloat at lists.bufferbloat.net>
>>
>>
>>
>> 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)
>> Results:
>> ========
>> Download:
>> 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)
>> ========
>> Upload:
>> 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...
>>
>>
>>
>> _______________________________________________
>> Bloat mailing list
>>
>> Bloat at lists.bufferbloat.net
>> https://lists.bufferbloat.net/listinfo/bloat
>>
>>
>>
>>
> --
> David Collier-Brown, | Always do right. This will gratify
> System Programmer and Author | some people and astonish the rest
>
> dave.collier-brown at indexexchange.com | -- Mark Twain
>
> CONFIDENTIALITY NOTICE AND DISCLAIMER : This telecommunication, including any and all attachments, contains confidential information intended only for the person(s) to whom it is addressed. Any dissemination, distribution, copying or disclosure is strictly prohibited and is not a waiver of confidentiality. If you have received this telecommunication in error, please notify the sender immediately by return electronic mail and delete the message from your inbox and deleted items folders. This telecommunication does not constitute an express or implied agreement to conduct transactions by electronic means, nor does it constitute a contract offer, a contract amendment or an acceptance of a contract offer. Contract terms contained in this telecommunication are subject to legal review and the completion of formal documentation and are not binding until same is confirmed in writing and has been signed by an authorized signatory.
>
> _______________________________________________
> Starlink mailing list
> Starlink at lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/starlink
More information about the Starlink
mailing list