-
Notifications
You must be signed in to change notification settings - Fork 44
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
Run benchmarking test with the aquatic bencher #735
Comments
The result here with 2 cores is a little bit worse than mine. |
I think the virtual server I was using for that benchmark has quite a bit lower per-core performance than a good recent desktop CPU, which could explain the discrepancy. The general pattern seems to hold, though, with e.g. aquatic performing around 4 times better than chihaya with 2 cores. |
I'm getting some errors trying to run a complete test: For example:
|
Yeah, chihaya tends to crash under heavy load. There is an issue opened about it somewhere, probably in the chihaya or Go repos. In my recollection it is amazingly an actual Go runtime limitation that they didn’t want to fix. Another thing of interest here is that the default CpuMode gives an unfair advantage to chihaya and torrust since they open one worker per thread, while the benchmark config for aquatic and opentracker opens one per core. You can see this by looking at the average CPU utilization stats for the lower core counts. This could be solved by adding entries to test with double the current worker count too for aquatic/opentracker. The reason why I haven’t yet is that the current setup is meant to enable somewhat fair testing on virtual machines where hyperthreads don’t really correspond to real hyperthreads, but for that to work, SubsequentOnePerPair mode must be used. |
Hi @greatest-ape, thank you for your feedback. Does that mean that ideally the test should be run on a virtual machine to be accurate? |
In its current exact state, yes, but I can make some minor modifications to make it work well locally too :-) |
I’ve done those changes now. |
We have to update the configuration in https://github.com/greatest-ape/aquatic/blob/master/crates/bencher/src/protocols/udp.rs#L448-L508 THe env var name and the configuration file have changed. |
I've opened a PR on the Aquatic repo to update the tracker config in the Bencher. |
PR merged. |
Relates to: greatest-ape/aquatic#191
I've added the Torrust Tracker to the Aquatic Bencher.
The Aquatic Bencher is a Rust crate to run load tests for UDP trackers.
Now we can run the same benchmarking test for all these UDP trackers:
I'm now running the test on my machine although it's not working for opentracker (I don't know why yet). I will post the final results.
For the time being with 2 cores these are the results:
With: load test workers: 8, cpus: 8-15,24-31:
With: load test workers: 12, cpus: 4-15,20-31:
@da2ce7 @mickvandijke I'm not using the DashMap repository implementation.
The text was updated successfully, but these errors were encountered: