1个不稳定版本
0.9.0 | 2024年5月3日 |
---|
#39 in #peer-to-peer
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