Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

perf(jetsocat): increase the maximum JMUX message size #979

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

CBenoit
Copy link
Member

@CBenoit CBenoit commented Aug 17, 2024

This has almost no effect on the throughput when there is a significant delay, but the throughput is improved when the delay is very small to non-inexistant. The main benefit is a reduced CPU-usage.

Benchmark results before this patch

With 50ms delay on loopback

1 connection:

[  1] 0.0000-600.4197 sec  16.1 GBytes   230 Mbits/sec

2 connections:

[  1] 0.0000-605.0387 sec  8.19 GBytes   116 Mbits/sec
[  2] 0.0000-605.1395 sec  8.19 GBytes   116 Mbits/sec
[SUM] 0.0000-605.1395 sec  16.4 GBytes   233 Mbits/sec

10 connections:

[  3] 0.0000-625.7966 sec  1.69 GBytes  23.2 Mbits/sec
[  8] 0.0000-625.9956 sec  1.69 GBytes  23.2 Mbits/sec
[  1] 0.0000-626.0966 sec  1.69 GBytes  23.2 Mbits/sec
[  5] 0.0000-626.0964 sec  1.69 GBytes  23.2 Mbits/sec
[  2] 0.0000-626.1983 sec  1.69 GBytes  23.2 Mbits/sec
[  7] 0.0000-626.1964 sec  1.69 GBytes  23.2 Mbits/sec
[  6] 0.0000-626.1964 sec  1.69 GBytes  23.2 Mbits/sec
[  9] 0.0000-626.1981 sec  1.69 GBytes  23.2 Mbits/sec
[ 10] 0.0000-626.2973 sec  1.69 GBytes  23.2 Mbits/sec
[  4] 0.0000-626.3984 sec  1.69 GBytes  23.2 Mbits/sec
[SUM] 0.0000-626.3986 sec  16.9 GBytes   232 Mbits/sec

Without delay

1 connection:

[  1] 0.0000-600.0518 sec  1.33 TBytes  19.4 Gbits/sec

2 connections:

[  2] 0.0000-600.0706 sec   681 GBytes  9.75 Gbits/sec
[  1] 0.0000-600.0705 sec   681 GBytes  9.75 Gbits/sec
[SUM] 0.0000-600.0705 sec  1.33 TBytes  19.5 Gbits/sec

10 connections:

[  3] 0.0000-600.3608 sec   112 GBytes  1.60 Gbits/sec
[  5] 0.0000-600.3606 sec   112 GBytes  1.60 Gbits/sec
[  6] 0.0000-600.3605 sec   112 GBytes  1.60 Gbits/sec
[  8] 0.0000-600.3598 sec   112 GBytes  1.60 Gbits/sec
[  7] 0.0000-600.3594 sec   112 GBytes  1.60 Gbits/sec
[  1] 0.0000-600.3606 sec   112 GBytes  1.60 Gbits/sec
[  9] 0.0000-600.3597 sec   112 GBytes  1.60 Gbits/sec
[ 10] 0.0000-600.3606 sec   112 GBytes  1.60 Gbits/sec
[  2] 0.0000-600.3602 sec   112 GBytes  1.60 Gbits/sec
[  4] 0.0000-600.3719 sec   112 GBytes  1.60 Gbits/sec
[SUM] 0.0000-600.3721 sec  1.09 TBytes  16.0 Gbits/sec

Benchmark results after this patch

With 50ms delay on loopback

1 connection:

[  1] 0.0000-600.4552 sec  16.1 GBytes   231 Mbits/sec

2 connections:

[  1] 0.0000-605.1600 sec  8.16 GBytes   116 Mbits/sec
[  2] 0.0000-605.1599 sec  8.16 GBytes   116 Mbits/sec
[SUM] 0.0000-605.1599 sec  16.3 GBytes   232 Mbits/sec

10 connections:

[  8] 0.0000-625.8346 sec  1.69 GBytes  23.2 Mbits/sec
[  9] 0.0000-626.1828 sec  1.69 GBytes  23.2 Mbits/sec
[  2] 0.0000-626.1820 sec  1.69 GBytes  23.2 Mbits/sec
[  5] 0.0000-626.1817 sec  1.69 GBytes  23.2 Mbits/sec
[  6] 0.0000-626.1815 sec  1.69 GBytes  23.2 Mbits/sec
[  4] 0.0000-626.1827 sec  1.69 GBytes  23.2 Mbits/sec
[  3] 0.0000-626.1814 sec  1.69 GBytes  23.2 Mbits/sec
[  7] 0.0000-626.1821 sec  1.69 GBytes  23.2 Mbits/sec
[  1] 0.0000-626.2831 sec  1.69 GBytes  23.1 Mbits/sec
[ 10] 0.0000-626.2819 sec  1.69 GBytes  23.1 Mbits/sec
[SUM] 0.0000-626.2832 sec  16.9 GBytes   232 Mbits/sec

Without delay

1 connection:

[  1] 0.0000-600.0402 sec  1.68 TBytes  24.6 Gbits/sec

2 connections:

[  1] 0.0000-600.0628 sec   752 GBytes  10.8 Gbits/sec
[  2] 0.0000-601.0794 sec   751 GBytes  10.7 Gbits/sec
[SUM] 0.0000-601.0794 sec  1.47 TBytes  21.5 Gbits/sec

10 connections:

[  6] 0.0000-600.3015 sec   127 GBytes  1.82 Gbits/sec
[  3] 0.0000-600.3014 sec   127 GBytes  1.82 Gbits/sec
[  7] 0.0000-600.3012 sec   127 GBytes  1.82 Gbits/sec
[  5] 0.0000-600.2992 sec   127 GBytes  1.82 Gbits/sec
[  9] 0.0000-600.3014 sec   127 GBytes  1.82 Gbits/sec
[  1] 0.0000-600.3006 sec   127 GBytes  1.82 Gbits/sec
[  2] 0.0000-600.3601 sec   127 GBytes  1.82 Gbits/sec
[ 10] 0.0000-600.3592 sec   127 GBytes  1.82 Gbits/sec
[  8] 0.0000-600.3604 sec   127 GBytes  1.82 Gbits/sec
[  4] 0.0000-600.3586 sec   127 GBytes  1.82 Gbits/sec
[SUM] 0.0000-600.3605 sec  1.24 TBytes  18.2 Gbits/sec

@CBenoit CBenoit marked this pull request as draft August 17, 2024 17:40
@CBenoit
Copy link
Member Author

CBenoit commented Aug 17, 2024

DO NOT MERGE BEFORE 2025.2.0

This has almost no effect on the throughput when there is a significant
delay, but the throughput is improved when the delay is very small to
non-inexistant. The main benefit is a reduced CPU-usage.

1. Benchmark results before this patch

a. With 50ms delay on loopback

1 connection:
[  1] 0.0000-600.4197 sec  16.1 GBytes   230 Mbits/sec

2 connections:
[  1] 0.0000-605.0387 sec  8.19 GBytes   116 Mbits/sec
[  2] 0.0000-605.1395 sec  8.19 GBytes   116 Mbits/sec
[SUM] 0.0000-605.1395 sec  16.4 GBytes   233 Mbits/sec

10 connections:
[  3] 0.0000-625.7966 sec  1.69 GBytes  23.2 Mbits/sec
[  8] 0.0000-625.9956 sec  1.69 GBytes  23.2 Mbits/sec
[  1] 0.0000-626.0966 sec  1.69 GBytes  23.2 Mbits/sec
[  5] 0.0000-626.0964 sec  1.69 GBytes  23.2 Mbits/sec
[  2] 0.0000-626.1983 sec  1.69 GBytes  23.2 Mbits/sec
[  7] 0.0000-626.1964 sec  1.69 GBytes  23.2 Mbits/sec
[  6] 0.0000-626.1964 sec  1.69 GBytes  23.2 Mbits/sec
[  9] 0.0000-626.1981 sec  1.69 GBytes  23.2 Mbits/sec
[ 10] 0.0000-626.2973 sec  1.69 GBytes  23.2 Mbits/sec
[  4] 0.0000-626.3984 sec  1.69 GBytes  23.2 Mbits/sec
[SUM] 0.0000-626.3986 sec  16.9 GBytes   232 Mbits/sec

b. Without delay

1 connection:
[  1] 0.0000-600.0518 sec  1.33 TBytes  19.4 Gbits/sec

2 connections:
[  2] 0.0000-600.0706 sec   681 GBytes  9.75 Gbits/sec
[  1] 0.0000-600.0705 sec   681 GBytes  9.75 Gbits/sec
[SUM] 0.0000-600.0705 sec  1.33 TBytes  19.5 Gbits/sec

10 connections:
[  3] 0.0000-600.3608 sec   112 GBytes  1.60 Gbits/sec
[  5] 0.0000-600.3606 sec   112 GBytes  1.60 Gbits/sec
[  6] 0.0000-600.3605 sec   112 GBytes  1.60 Gbits/sec
[  8] 0.0000-600.3598 sec   112 GBytes  1.60 Gbits/sec
[  7] 0.0000-600.3594 sec   112 GBytes  1.60 Gbits/sec
[  1] 0.0000-600.3606 sec   112 GBytes  1.60 Gbits/sec
[  9] 0.0000-600.3597 sec   112 GBytes  1.60 Gbits/sec
[ 10] 0.0000-600.3606 sec   112 GBytes  1.60 Gbits/sec
[  2] 0.0000-600.3602 sec   112 GBytes  1.60 Gbits/sec
[  4] 0.0000-600.3719 sec   112 GBytes  1.60 Gbits/sec
[SUM] 0.0000-600.3721 sec  1.09 TBytes  16.0 Gbits/sec

2. Benchmark results after this patch

a. With 50ms delay on loopback

1 connection:
[  1] 0.0000-600.4552 sec  16.1 GBytes   231 Mbits/sec

2 connections:
[  1] 0.0000-605.1600 sec  8.16 GBytes   116 Mbits/sec
[  2] 0.0000-605.1599 sec  8.16 GBytes   116 Mbits/sec
[SUM] 0.0000-605.1599 sec  16.3 GBytes   232 Mbits/sec

10 connections:
[  8] 0.0000-625.8346 sec  1.69 GBytes  23.2 Mbits/sec
[  9] 0.0000-626.1828 sec  1.69 GBytes  23.2 Mbits/sec
[  2] 0.0000-626.1820 sec  1.69 GBytes  23.2 Mbits/sec
[  5] 0.0000-626.1817 sec  1.69 GBytes  23.2 Mbits/sec
[  6] 0.0000-626.1815 sec  1.69 GBytes  23.2 Mbits/sec
[  4] 0.0000-626.1827 sec  1.69 GBytes  23.2 Mbits/sec
[  3] 0.0000-626.1814 sec  1.69 GBytes  23.2 Mbits/sec
[  7] 0.0000-626.1821 sec  1.69 GBytes  23.2 Mbits/sec
[  1] 0.0000-626.2831 sec  1.69 GBytes  23.1 Mbits/sec
[ 10] 0.0000-626.2819 sec  1.69 GBytes  23.1 Mbits/sec
[SUM] 0.0000-626.2832 sec  16.9 GBytes   232 Mbits/sec

b. Without delay

1 connection:
[  1] 0.0000-600.0402 sec  1.68 TBytes  24.6 Gbits/sec

2 connections:
[  1] 0.0000-600.0628 sec   752 GBytes  10.8 Gbits/sec
[  2] 0.0000-601.0794 sec   751 GBytes  10.7 Gbits/sec
[SUM] 0.0000-601.0794 sec  1.47 TBytes  21.5 Gbits/sec

10 connections:
[  6] 0.0000-600.3015 sec   127 GBytes  1.82 Gbits/sec
[  3] 0.0000-600.3014 sec   127 GBytes  1.82 Gbits/sec
[  7] 0.0000-600.3012 sec   127 GBytes  1.82 Gbits/sec
[  5] 0.0000-600.2992 sec   127 GBytes  1.82 Gbits/sec
[  9] 0.0000-600.3014 sec   127 GBytes  1.82 Gbits/sec
[  1] 0.0000-600.3006 sec   127 GBytes  1.82 Gbits/sec
[  2] 0.0000-600.3601 sec   127 GBytes  1.82 Gbits/sec
[ 10] 0.0000-600.3592 sec   127 GBytes  1.82 Gbits/sec
[  8] 0.0000-600.3604 sec   127 GBytes  1.82 Gbits/sec
[  4] 0.0000-600.3586 sec   127 GBytes  1.82 Gbits/sec
[SUM] 0.0000-600.3605 sec  1.24 TBytes  18.2 Gbits/sec
@CBenoit CBenoit force-pushed the perf/jmux-proxy-2025 branch from bc758f2 to 2ac9808 Compare August 18, 2024 20:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

1 participant