From 9f000abb52a3fc6f1db09c2eff352b6dbe6b4438 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20Frosteg=C3=A5rd?= Date: Sat, 16 Mar 2024 10:49:33 +0100 Subject: [PATCH] Add separate READMEs for load testers --- crates/http_load_test/Cargo.toml | 3 +- crates/http_load_test/README.md | 55 ++++++++++++++++++++++++++++++++ crates/udp_load_test/Cargo.toml | 3 +- crates/udp_load_test/README.md | 49 ++++++++++++++++++++++++++++ crates/ws_load_test/Cargo.toml | 3 +- crates/ws_load_test/README.md | 55 ++++++++++++++++++++++++++++++++ 6 files changed, 165 insertions(+), 3 deletions(-) create mode 100644 crates/http_load_test/README.md create mode 100644 crates/udp_load_test/README.md create mode 100644 crates/ws_load_test/README.md diff --git a/crates/http_load_test/Cargo.toml b/crates/http_load_test/Cargo.toml index b15c260..2bce99c 100644 --- a/crates/http_load_test/Cargo.toml +++ b/crates/http_load_test/Cargo.toml @@ -7,9 +7,10 @@ authors.workspace = true edition.workspace = true license.workspace = true repository.workspace = true -readme.workspace = true rust-version.workspace = true +readme = "README.md" + [[bin]] name = "aquatic_http_load_test" diff --git a/crates/http_load_test/README.md b/crates/http_load_test/README.md new file mode 100644 index 0000000..be0bf61 --- /dev/null +++ b/crates/http_load_test/README.md @@ -0,0 +1,55 @@ +# aquatic_http_load_test: HTTP BitTorrent tracker load tester + +[![CI](https://github.com/greatest-ape/aquatic/actions/workflows/ci.yml/badge.svg)](https://github.com/greatest-ape/aquatic/actions/workflows/ci.yml) + +Load tester for HTTP BitTorrent trackers. Requires Linux 5.8 or later. + +## Usage + +### Compiling + +- Install Rust with [rustup](https://rustup.rs/) (latest stable release is recommended) +- Install build dependencies with your package manager (e.g., `apt-get install cmake build-essential`) +- Clone this git repository and build the application: + +```sh +git clone https://github.com/greatest-ape/aquatic.git && cd aquatic + +# Recommended: tell Rust to enable support for all SIMD extensions present on +# current CPU except for those relating to AVX-512. (If you run a processor +# that doesn't clock down when using AVX-512, you can enable those instructions +# too.) +. ./scripts/env-native-cpu-without-avx-512 + +cargo build --release -p aquatic_http_load_test +``` + +### Configuring and running + +Generate the configuration file: + +```sh +./target/release/aquatic_http_load_test -p > "load-test-config.toml" +``` + +Make necessary adjustments to the file. + +Make sure locked memory limits are sufficient: + +```sh +ulimit -l 65536 +``` + +First, start the tracker application that you want to test. Then +start the load tester: + +```sh +./target/release/aquatic_http_load_test -c "load-test-config.toml" +``` + +## Copyright and license + +Copyright (c) Joakim Frostegård + +Distributed under the terms of the Apache License, Version 2.0. Please refer to +the `LICENSE` file in the repository root directory for details. diff --git a/crates/udp_load_test/Cargo.toml b/crates/udp_load_test/Cargo.toml index 8cce143..4445030 100644 --- a/crates/udp_load_test/Cargo.toml +++ b/crates/udp_load_test/Cargo.toml @@ -7,9 +7,10 @@ authors.workspace = true edition.workspace = true license.workspace = true repository.workspace = true -readme.workspace = true rust-version.workspace = true +readme = "README.md" + [features] cpu-pinning = ["aquatic_common/cpu-pinning"] diff --git a/crates/udp_load_test/README.md b/crates/udp_load_test/README.md new file mode 100644 index 0000000..db10b5d --- /dev/null +++ b/crates/udp_load_test/README.md @@ -0,0 +1,49 @@ +# aquatic_udp_load_test: UDP BitTorrent tracker load tester + +[![CI](https://github.com/greatest-ape/aquatic/actions/workflows/ci.yml/badge.svg)](https://github.com/greatest-ape/aquatic/actions/workflows/ci.yml) + +High-performance load tester for UDP BitTorrent trackers, for Unix-like operating systems. + +## Usage + +### Compiling + +- Install Rust with [rustup](https://rustup.rs/) (latest stable release is recommended) +- Install build dependencies with your package manager (e.g., `apt-get install cmake build-essential`) +- Clone this git repository and build the application: + +```sh +git clone https://github.com/greatest-ape/aquatic.git && cd aquatic + +# Recommended: tell Rust to enable support for all SIMD extensions present on +# current CPU except for those relating to AVX-512. (If you run a processor +# that doesn't clock down when using AVX-512, you can enable those instructions +# too.) +. ./scripts/env-native-cpu-without-avx-512 + +cargo build --release -p aquatic_udp_load_test +``` + +### Configuring and running + +Generate the configuration file: + +```sh +./target/release/aquatic_udp_load_test -p > "load-test-config.toml" +``` + +Make necessary adjustments to the file. + +Once done, first start the tracker application that you want to test. Then, +start the load tester: + +```sh +./target/release/aquatic_udp_load_test -c "load-test-config.toml" +``` + +## Copyright and license + +Copyright (c) Joakim Frostegård + +Distributed under the terms of the Apache License, Version 2.0. Please refer to +the `LICENSE` file in the repository root directory for details. diff --git a/crates/ws_load_test/Cargo.toml b/crates/ws_load_test/Cargo.toml index 932aebf..3691266 100644 --- a/crates/ws_load_test/Cargo.toml +++ b/crates/ws_load_test/Cargo.toml @@ -7,9 +7,10 @@ authors.workspace = true edition.workspace = true license.workspace = true repository.workspace = true -readme.workspace = true rust-version.workspace = true +readme = "README.md" + [[bin]] name = "aquatic_ws_load_test" diff --git a/crates/ws_load_test/README.md b/crates/ws_load_test/README.md new file mode 100644 index 0000000..5e31a22 --- /dev/null +++ b/crates/ws_load_test/README.md @@ -0,0 +1,55 @@ +# aquatic_ws_load_test: WebTorrent tracker load tester + +[![CI](https://github.com/greatest-ape/aquatic/actions/workflows/ci.yml/badge.svg)](https://github.com/greatest-ape/aquatic/actions/workflows/ci.yml) + +Load tester for WebTorrent trackers. Requires Linux 5.8 or later. + +## Usage + +### Compiling + +- Install Rust with [rustup](https://rustup.rs/) (latest stable release is recommended) +- Install build dependencies with your package manager (e.g., `apt-get install cmake build-essential`) +- Clone this git repository and build the application: + +```sh +git clone https://github.com/greatest-ape/aquatic.git && cd aquatic + +# Recommended: tell Rust to enable support for all SIMD extensions present on +# current CPU except for those relating to AVX-512. (If you run a processor +# that doesn't clock down when using AVX-512, you can enable those instructions +# too.) +. ./scripts/env-native-cpu-without-avx-512 + +cargo build --release -p aquatic_ws_load_test +``` + +### Configuring and running + +Generate the configuration file: + +```sh +./target/release/aquatic_ws_load_test -p > "load-test-config.toml" +``` + +Make necessary adjustments to the file. + +Make sure locked memory limits are sufficient: + +```sh +ulimit -l 65536 +``` + +First, start the tracker application that you want to test. Then +start the load tester: + +```sh +./target/release/aquatic_ws_load_test -c "load-test-config.toml" +``` + +## Copyright and license + +Copyright (c) Joakim Frostegård + +Distributed under the terms of the Apache License, Version 2.0. Please refer to +the `LICENSE` file in the repository root directory for details.