Devolutions / devolutions-gateway

A blazing fast relay server adaptable to different protocols and desired levels of traffic inspection.
Apache License 2.0
67 stars 10 forks source link

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

Open CBenoit opened 1 month ago

CBenoit commented 1 month ago

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 commented 1 month ago

DO NOT MERGE BEFORE 2025.2.0