-
Notifications
You must be signed in to change notification settings - Fork 422
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 test: WebSockets (pekko-http) #3526
Conversation
build.sbt
Outdated
"-Xms32g", | ||
"-Xmx32g", | ||
"-XX:+AlwaysPreTouch", | ||
"-XX:+UseZGC", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
shouldn't we test under standard conditions, and using a standard GC? I'm always suspicious of options crafted specially for benchmarks - why aren't they the default? ;)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As far as I read the Z garbage collector (ZGC) is optimized for low latency of GC's, which I can clearly see when comparing latencies of websockets with and without it. The tradeoff is allegedly higher CPU load.
This is not a justification, just a thought on why it's not the default - it's recommended for systems where latency is critical. That said, I agree we shouldn't strive to get super low latencies in this test, it's not its purpose. We only want to compare servers under the same conditions. Maybe the comparison will be somehow less visible without this GC, but I don't think so :)
What about leaving high Xmx/Xms and AlwaysPreTouch? This has a tradeoff of slower server startup, but reserves memory up front and gives a potential benefit of setting up better initial conditions.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If the goal is for the benchmarks to be comparative, I guess as long as the options are the same we are good :)
But 32G is a lot of memory, even for a benchmark ;) And you need a system with that amount of memory ... anyway, up to you :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have some second thoughts regarding tuning the base conditions to the best possible performance, let's talk off github ;)
No description provided.