Skip to content

Conversation

Aaronontheweb
Copy link
Member

@Aaronontheweb Aaronontheweb commented May 6, 2025

Changes

  • add clear error logging to indicate what went wrong (i.e. we ran into [Akka.IO] TcpListener connection queue problem #5988)
  • add timeouts in case clients fail / hang
  • add retries for failed connects (failed connects should not happen, but they do currently)
  • don't spam exceptions into the log

Checklist

For significant changes, please ensure that the following have been completed (delete if not relevant):

- add clear error logging to indicate what went wrong (i.e. we ran into akkadotnet#5988)
- add timeouts in case clients fail / hang
-  add retries for failed connects (failed connects should not happen, but they do currently)
- don't spam exceptions into the log
@Aaronontheweb
Copy link
Member Author

Normalized the benchmark numbers so we can get clean RPS now:


BenchmarkDotNet v0.13.12, Windows 11 (10.0.26100.3775)
12th Gen Intel Core i7-1260P, 1 CPU, 16 logical and 12 physical cores
.NET SDK 8.0.403
  [Host]  : .NET 8.0.14 (8.0.1425.11118), X64 RyuJIT AVX2
  LongRun : .NET 8.0.14 (8.0.1425.11118), X64 RyuJIT AVX2

Job=LongRun  Concurrent=True  Server=True  
InvocationCount=1  IterationCount=10  LaunchCount=3  
RunStrategy=Monitoring  UnrollFactor=1  WarmupCount=3  

Method MessageLength ClientsCount Mean Error StdDev Req/sec
ClientServerCommunication 10 1 48.425 μs 6.1854 μs 9.2580 μs 20,650.46
ClientServerCommunication 10 3 20.112 μs 1.5802 μs 2.3652 μs 49,720.73
ClientServerCommunication 10 5 14.663 μs 1.7795 μs 2.6634 μs 68,199.82
ClientServerCommunication 10 7 13.155 μs 1.3002 μs 1.9460 μs 76,014.26
ClientServerCommunication 10 10 12.010 μs 1.1204 μs 1.6770 μs 83,265.31
ClientServerCommunication 10 20 9.033 μs 0.6629 μs 0.9922 μs 110,700.68
ClientServerCommunication 10 30 9.436 μs 0.6759 μs 1.0117 μs 105,981.82
ClientServerCommunication 10 40 9.197 μs 0.9373 μs 1.4029 μs 108,729.76
ClientServerCommunication 100 1 41.234 μs 1.5821 μs 2.3680 μs 24,251.92
ClientServerCommunication 100 3 19.735 μs 1.7063 μs 2.5539 μs 50,671.65
ClientServerCommunication 100 5 15.716 μs 2.0101 μs 3.0086 μs 63,629.59
ClientServerCommunication 100 7 15.130 μs 1.4337 μs 2.1459 μs 66,095.58
ClientServerCommunication 100 10 11.591 μs 1.1970 μs 1.7917 μs 86,272.65
ClientServerCommunication 100 20 9.551 μs 0.7549 μs 1.1300 μs 104,698.32
ClientServerCommunication 100 30 9.805 μs 1.2029 μs 1.8004 μs 101,991.35
ClientServerCommunication 100 40 10.117 μs 0.5260 μs 0.7873 μs 98,840.96

@Aaronontheweb Aaronontheweb marked this pull request as ready for review May 6, 2025 18:29
@Aaronontheweb
Copy link
Member Author

lol these numbers for Akka.IO are generally awful - doesn't help that the original benchmark would hang and crash without any explanation.

@Aaronontheweb Aaronontheweb enabled auto-merge (squash) May 6, 2025 18:29
@Aaronontheweb Aaronontheweb merged commit 0401563 into akkadotnet:dev May 6, 2025
11 checks passed
@Aaronontheweb Aaronontheweb deleted the tcp-benchmark-error-handling branch May 6, 2025 19:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant