#bittorrent #p2p #torrent

app aquatic_bencher

仅适用于Linux的 aquatic及其他BitTorrent追踪器的自动基准测试

1个不稳定版本

0.9.0 2024年5月3日

#39 in #peer-to-peer

Apache-2.0

115KB
2.5K SLoC

aquatic_bencher

对 aquatic 及其他 BitTorrent 追踪器的自动基准测试。

需要 Linux 6.0 或更高版本。

目前,仅实现了 UDP BitTorrent 追踪器支持。

UDP

名称 提交
aquatic_udp (与bencher使用相同)
opentracker 110868e
chihaya 2f79440
torrust-tracker 47c2fe2

列出的提交已知可以工作。最好先测试每个项目的最新提交,如果它们似乎不起作用,再回滚到列出的提交。

Chihaya在高负载下已知会崩溃。

用法

安装依赖项。不同Linux发行版有不同的安装方法。在 Debian 12 上,运行

sudo apt-get update
sudo apt-get install -y curl cmake build-essential pkg-config git screen cvs zlib1g zlib1g-dev golang
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"

可选安装最新Linux内核。在 Debian 12 上,您可以从backports进行安装

sudo echo "deb http://deb.debian.org/debian bookworm-backports main contrib" >> /etc/apt/sources.list
sudo apt-get update && sudo apt-get install -y linux-image-amd64/bookworm-backports
# You will have to restart to boot into the new kernel

编译 aquatic_udp、aquatic_udp_load_test 和 aquatic_udp_bencher

git clone https://github.com/greatest-ape/aquatic.git && cd aquatic
# Optionally enable certain native platform optimizations
. ./scripts/env-native-cpu-without-avx-512
cargo build --profile "release-debug" -p aquatic_udp --features "io-uring"
cargo build --profile "release-debug" -p aquatic_udp_load_test
cargo build --profile "release-debug" -p aquatic_bencher --features udp
cd ..

编译和安装 opentracker

cvs -d :pserver:[email protected]:/cvs -z9 co libowfat
cd libowfat
make
cd ..
git clone git://erdgeist.org/opentracker
cd opentracker
# Optionally enable native platform optimizations
sed -i "s/^OPTS_production=-O3/OPTS_production=-O3 -march=native -mtune=native/g" Makefile
make
sudo cp ./opentracker /usr/local/bin/
cd ..

编译和安装 chihaya

git clone https://github.com/chihaya/chihaya.git
cd chihaya
go build ./cmd/chihaya
sudo cp ./chihaya /usr/local/bin/

编译和安装 torrust-tracker

git clone [email protected]:torrust/torrust-tracker.git
cd torrust-tracker
cargo build --release 
cp ./target/release/torrust-tracker /usr/local/bin/

您可能需要提高锁定内存限制

ulimit -l 65536

运行 bencher

cd aquatic
./target/release-debug/aquatic_bencher udp
# or print info on command line arguments
./target/release-debug/aquatic_bencher udp --help

如果您在虚拟机/虚拟服务器上运行负载测试,考虑传递 --min-priority medium --cpu-mode subsequent-one-per-pair 以获得更公平的结果。

依赖项

~7–20MB
~278K SLoC