Skip to content

SignalR: Benchmark server logging #9264

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

Closed
wants to merge 12 commits into from

Conversation

staff0rd
Copy link
Contributor

@staff0rd staff0rd commented Apr 10, 2019

Gives a better idea of what the benchmark server is doing. Helpful for getting an overview when using multiple crankier clients to load test.

  • Timestamp is time since first connection made
  • Displays current connection count
  • Displays peak connection count
  • When connection counts are > 100, limits logging to (connectionCount % 100 == 0) to avoid console spam

Example from a B2s instance;

[00:18:23] Connected: 76200 current, 76200 peak.
[00:18:34] Connected: 76300 current, 76300 peak.
[00:18:43] Connected: 76400 current, 76400 peak.
[00:19:32] Connected: 76500 current, 76500 peak.

I also have this if you wanna raise multiple crankier clients in containers. Remember to pull them down when you're finished as they'll live (bill) forever if you don't turn them off.

@Eilon Eilon added the area-signalr Includes: SignalR clients and servers label Apr 11, 2019
@staff0rd
Copy link
Contributor Author

staff0rd commented May 5, 2019

Updates completed, this is now pending your review @anurse, @halter73

Copy link
Member

@BrennanConroy BrennanConroy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would prefer not touching the BenchmarkServer project if possible.

I'm fine with us creating a new example server project in the Crankier folder that is specific to Crankier usage.

@analogrelay
Copy link
Contributor

Yeah, it's not super clear but the BenchmarkServer app is actually used other benchmarking logic we do elsewhere. Introducing some locks and logging may adversely affect that benchmark.

Rather than an entirely separate app, a separate Hub with it's own endpoint URL would be OK with me.

@staff0rd
Copy link
Contributor Author

staff0rd commented May 6, 2019

@anurse that will not build because of #9976.

How about /crankier/client and /crankier/server?

@halter73
Copy link
Member

halter73 commented May 7, 2019

@BrennanConroy @anurse What if instead of creating yet another benchmark server app, we added an opt-in flag like --enable-stdout-connection-counting? BenchmarkServer already adds command line arguments to config.

Without the flag, we could register a NoOpEchoHubConnectionCounter which would have no measurable performance impact.

@analogrelay
Copy link
Contributor

I'm very in favor of any option that doesn't involve a whole new test app :). Command line arg sounds great.

@staff0rd
Copy link
Contributor Author

@BrennanConroy thoughts on options above?

@analogrelay analogrelay added this to the 3.0.0-preview6 milestone May 20, 2019
@BrennanConroy
Copy link
Member

I'm still not a fan of making a precedent that we can modify the BenchmarkServer app as long as it "doesn't affect performance".

In your other PR you were saying you are not able to build this app because of the Directory.Build.Props file which we are planning on keeping, so I'm not sure how this will help.

@staff0rd
Copy link
Contributor Author

staff0rd commented May 21, 2019

@anurse @halter73 What if I were to alter Crankier such that if you passed a serve argument it would host and expose its own Hub specific to the purposes it needs?

For load testing purposes the scenario would then be

crankier serve to run a server
crankier local <args> to run the clients that will connect to this server

@analogrelay
Copy link
Contributor

Sure, that sounds like a good approach.

@staff0rd
Copy link
Contributor Author

I'll open a new PR with a different approach.

@staff0rd staff0rd closed this May 23, 2019
@staff0rd staff0rd mentioned this pull request Jul 21, 2019
@github-actions github-actions bot locked and limited conversation to collaborators Dec 8, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-signalr Includes: SignalR clients and servers
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants