Skip to content

Conversation

@camshaft
Copy link
Contributor

@camshaft camshaft commented Jun 23, 2023

Description of changes:

When testing stream creation latency, it is helpful to have a command to create streams in a loop, send/recv some data and measure total throughput.

This change adds a --streams argument to the qns perf client to accomplish this.

Call-outs:

Now that array::from_fn is stable in 1.63, we can get rid of the Vec allocation for the chunks.

Testing:

$ ./target/release/s2n-quic-qns perf server --ip 192.167.1.10 --port 4433 --stats

flamegraph

Tx Rate	Rx Rate	Max Cwnd	Max Inflight	Lost Packets	Wakeups	Duration	Max RTT	Max SRTT	PTO Count	Max Pacing Rate	Max Delivery Rate
94.37Mbps	93.12Mbps	89.42kB	9.60kB	0	40738	26.04ms	333ms	333ms	0	0bps	0bps
95.85Mbps	94.59Mbps	89.42kB	669B	0	41382	26.038ms	296µs	96.262µs	0	0bps	0bps
97.27Mbps	95.99Mbps	89.42kB	674B	0	41996	26.04ms	300µs	73.638µs	0	0bps	0bps
98.25Mbps	96.96Mbps	89.42kB	669B	0	42417	26.039ms	271µs	70.591µs	0	0bps	0bps
98.35Mbps	97.06Mbps	89.42kB	674B	0	42462	26.038ms	308µs	74.047µs	0	0bps	0bps
97.97Mbps	96.68Mbps	89.42kB	669B	0	42297	26.038ms	292µs	71.769µs	0	0bps	0bps
98.96Mbps	97.66Mbps	89.42kB	674B	0	42727	26.038ms	276µs	70.439µs	0	0bps	0bps
97.94Mbps	96.65Mbps	89.42kB	669B	0	42284	26.039ms	272µs	69.747µs	0	0bps	0bps
98.86Mbps	97.56Mbps	89.42kB	674B	0	42681	26.038ms	340µs	78.593µs	0	0bps	0bps
98.78Mbps	97.48Mbps	89.42kB	669B	0	42645	26.037ms	305µs	82.626µs	0	0bps	0bps
98.59Mbps	97.30Mbps	89.42kB	674B	0	42567	26.038ms	292µs	71.879µs	0	0bps	0bps
98.62Mbps	97.32Mbps	89.42kB	669B	0	42570	26.039ms	443µs	120.519µs	0	0bps	0bps
100.90Mbps	99.57Mbps	89.42kB	674B	0	43561	26.038ms	522µs	101.561µs	0	0bps	0bps
100.93Mbps	99.60Mbps	89.42kB	669B	0	43572	26.039ms	332µs	71.776µs	0	0bps	0bps
99.00Mbps	97.70Mbps	89.42kB	674B	0	42739	26.04ms	270µs	72.659µs	0	0bps	0bps
99.19Mbps	97.88Mbps	89.42kB	669B	0	42823	26.038ms	277µs	70.403µs	0	0bps	0bps
99.32Mbps	98.01Mbps	89.42kB	674B	0	42879	26.039ms	293µs	70.442µs	0	0bps	0bps
99.04Mbps	97.73Mbps	89.42kB	669B	0	42758	26.04ms	266µs	68.966µs	0	0bps	0bps
99.17Mbps	97.86Mbps	89.42kB	674B	0	42813	26.037ms	275µs	73.071µs	0	0bps	0bps
99.49Mbps	98.18Mbps	89.42kB	669B	0	42950	26.037ms	273µs	79.996µs	0	0bps	0bps
99.70Mbps	98.39Mbps	89.42kB	674B	0	43041	26.042ms	2.514ms	349.741µs	0	0bps	0bps
99.64Mbps	98.33Mbps	89.42kB	669B	0	43017	26.037ms	324µs	94.99µs	0	0bps	0bps
100.84Mbps	99.51Mbps	89.42kB	674B	0	43536	24.997ms	317µs	75.032µs	0	0bps	0bps
101.01Mbps	99.68Mbps	89.42kB	669B	0	43603	26.038ms	291µs	72.337µs	0	0bps	0bps

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

@camshaft camshaft force-pushed the camshaft/qns-perf-streams branch from 1f80a70 to 51a6236 Compare June 23, 2023 23:01
@camshaft camshaft marked this pull request as ready for review June 23, 2023 23:04
@camshaft camshaft force-pushed the camshaft/qns-perf-streams branch from 51a6236 to e9f02c0 Compare June 26, 2023 18:23
@camshaft camshaft requested a review from maddeleine June 27, 2023 15:02
@camshaft camshaft merged commit 9bf373d into main Jun 27, 2023
@camshaft camshaft deleted the camshaft/qns-perf-streams branch June 27, 2023 18:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants