Benchmarks icon indicating copy to clipboard operation
Benchmarks copied to clipboard

How to outperform 28231 open connections?

Open alewmt opened this issue 3 years ago • 1 comments

Hi! Trying to test my server throughput, I found out that the server can't create more then 28231 open connections and that limit overall throughput to ~8500rpc. How can I tune my server to allow more simultaneous open connections?

Client wrk -t16 -c40000 Server code:

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.MapPost("/", async () => await Task.Delay(TimeSpan.FromMilliseconds(3300)));
app.Run();

Server: docker container mcr.microsoft.com/dotnet/aspnet:6.0 inside Ubuntu 20.04 VM on Hyper-V Windows Server 2022 CPU Xeon e5-2697A, 64GB ram

alewmt avatar May 22 '22 15:05 alewmt

The server can have more open connections; however a TCP connection is identified by a 4 tuple

client IP address, client port number, server IP address, server port number

As server IP address and port number are always the same (e.g. 80 or 443); and port numbers range from 0 to 65535 with large area reserved your connections will be capped by using the same client IP address for all the connections.

benaadams avatar May 22 '22 15:05 benaadams