Add benchmarks to README; update TODO

This commit is contained in:
Joakim Frostegård 2020-04-19 19:27:20 +02:00
parent 61841fffc3
commit 44a58d4946
2 changed files with 28 additions and 1 deletions

View file

@ -12,6 +12,34 @@ Supports IPv4 and IPv6.
There is currently no support for a info hash black- or whilelist.
## Benchmarks
Performance was compared to [opentracker](http://erdgeist.org/arts/software/opentracker/) using `aquatic_load_test`.
### Results (server responses per second), fastest in bold
| workers | aquatic | opentracker |
| ------- | ----------- | ----------- |
| 1 | n/a | __177k__ |
| 2 | __168k__ | 98k |
| 3 | __187k__ | 118k |
| 4 | __216k__ | 127k |
| 6 | __309k__ | 109k |
| 8 | __408k__ | 96k |
### Details
- System: Hetzner CCX41 VPS (16 dedicated vCPUs, Skylake)
- OS: Debian 10, kernel 4.19.0-8-amd64
- aquatic commit: 61841fff
- opentracker also has a single threaded event mode. It didn't perform as well (143k responses/second) as blocking single-threaded mode.
Default settings were used, except that:
- load test duration = 120 seconds
- load test multiple_client_ips = true
- load test worker settings were tuned for best results for each trackers
- aquatic request_workers was always = 1, only socket_workers setting was raised. Number in table corresponds to sum of both values
## Trivia
The tracker is called aquatic because it thrives under a torrent of bits ;-)

View file

@ -2,7 +2,6 @@
## aquatic
* mio: set oneshot for epoll and kqueue?
* Actually improving performance with more threads seems not to work too well
* Handle Ipv4 and Ipv6 peers. Probably split torrent state. Ipv4 peers
can't make use of Ipv6 ones. Ipv6 ones may or may note be able to make
use of Ipv4 ones, I have to check.