From 44a58d494681f08459d1ab6076975db399f57427 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20Frosteg=C3=A5rd?= Date: Sun, 19 Apr 2020 19:27:20 +0200 Subject: [PATCH] Add benchmarks to README; update TODO --- README.md | 28 ++++++++++++++++++++++++++++ TODO.md | 1 - 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 1dbfd91..713c81c 100644 --- a/README.md +++ b/README.md @@ -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 ;-) diff --git a/TODO.md b/TODO.md index e09a08d..ce73cf0 100644 --- a/TODO.md +++ b/TODO.md @@ -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.