From 70ef6e4211f7f14a122bc9caa64f9df65573ef8f Mon Sep 17 00:00:00 2001 From: Tom Foster Date: Sat, 13 Sep 2025 11:45:56 +0100 Subject: [PATCH] docs: Document maxperf Docker image variants from #1017 Add documentation for the new performance-optimised Docker images with "-maxperf" suffix. These use the release-max-perf build profile with LTO and target haswell CPU architecture on amd64 for optimal performance. Also restructure the static prebuilt binary section in generic deployment docs for better clarity and fix various UK English spelling issues. --- docs/deploying/docker.mdx | 27 ++++++++++++++++++--------- docs/deploying/generic.mdx | 28 +++++++++++----------------- 2 files changed, 29 insertions(+), 26 deletions(-) diff --git a/docs/deploying/docker.mdx b/docs/deploying/docker.mdx index a2a9e527..164898c8 100644 --- a/docs/deploying/docker.mdx +++ b/docs/deploying/docker.mdx @@ -11,10 +11,10 @@ OCI images for Continuwuity are available in the registries listed below. | Registry | Image | Notes | | --------------- | --------------------------------------------------------------- | -----------------------| -| Forgejo Registry| [forgejo.ellis.link/continuwuation/continuwuity:latest][fj] | Latest tagged image. | -| Forgejo Registry| [forgejo.ellis.link/continuwuation/continuwuity:main][fj] | Main branch image. | - -[fj]: https://forgejo.ellis.link/continuwuation/-/packages/container/continuwuity +| Forgejo Registry| [forgejo.ellis.link/continuwuation/continuwuity:latest](https://forgejo.ellis.link/continuwuation/-/packages/container/continuwuity/latest) | Latest tagged image. | +| Forgejo Registry| [forgejo.ellis.link/continuwuation/continuwuity:main](https://forgejo.ellis.link/continuwuation/-/packages/container/continuwuity/main) | Main branch image. | +| Forgejo Registry| [forgejo.ellis.link/continuwuation/continuwuity:latest-maxperf](https://forgejo.ellis.link/continuwuation/-/packages/container/continuwuity/latest-maxperf) | Performance optimised version. | +| Forgejo Registry| [forgejo.ellis.link/continuwuation/continuwuity:main-maxperf](https://forgejo.ellis.link/continuwuation/-/packages/container/continuwuity/main-maxperf) | Performance optimised version. | Use @@ -49,7 +49,7 @@ If you just want to test Continuwuity for a short time, you can use the `--rm` flag, which cleans up everything related to your container after you stop it. -### Docker-compose +### Docker Compose If the `docker run` command is not suitable for you or your setup, you can also use one of the provided `docker-compose` files. @@ -158,8 +158,19 @@ docker buildx build --load --tag continuwuity:latest -f docker/Dockerfile . # Example: Build for specific platforms and push to a registry. # docker buildx build --platform linux/amd64,linux/arm64 --tag registry.io/org/continuwuity:latest -f docker/Dockerfile . --push -# Example: Build binary optimized for the current CPU -# docker buildx build --load --tag continuwuity:latest --build-arg TARGET_CPU=native -f docker/Dockerfile . +# Example: Build binary optimised for the current CPU (standard release profile) +# docker buildx build --load \ +# --tag continuwuity:latest \ +# --build-arg TARGET_CPU=native \ +# -f docker/Dockerfile . + +# Example: Build maxperf variant (release-max-perf profile with LTO) +# Optimised for runtime performance and smaller binary size, but requires longer build time +# docker buildx build --load \ +# --tag continuwuity:latest-maxperf \ +# --build-arg TARGET_CPU=native \ +# --build-arg RUST_PROFILE=release-max-perf \ +# -f docker/Dockerfile . ``` Refer to the Docker Buildx documentation for more advanced build options. @@ -198,5 +209,3 @@ Alternatively, you can use Continuwuity's built-in delegation file capability. S ## Voice communication See the [TURN](../turn.md) page. - -[nix-buildlayeredimage]: https://ryantm.github.io/nixpkgs/builders/images/dockertools/#ssec-pkgs-dockerTools-buildLayeredImage diff --git a/docs/deploying/generic.mdx b/docs/deploying/generic.mdx index 90e42707..2c4fd2a2 100644 --- a/docs/deploying/generic.mdx +++ b/docs/deploying/generic.mdx @@ -10,27 +10,21 @@ ### Static prebuilt binary -You may simply download the binary that fits your machine architecture (x86_64 -or aarch64). Run `uname -m` to see what you need. +Download the binary for your architecture (x86_64 or aarch64) - run `uname -m` to check which you need. -You can download prebuilt fully static musl binaries from the latest tagged -release [here](https://forgejo.ellis.link/continuwuation/continuwuity/releases/latest) or -from the `main` CI branch workflow artifact output. These also include Debian/Ubuntu -packages. +Prebuilt static binaries are available from: +- **Tagged releases**: [Latest release page](https://forgejo.ellis.link/continuwuation/continuwuity/releases/latest) +- **Development builds**: CI artifacts from the `main` branch (includes Debian/Ubuntu packages) -You can download these directly using curl. The `ci-bins` are CI workflow binaries organized by commit -hash/revision, and `releases` are tagged releases. Sort by descending last -modified date to find the latest. +When browsing CI artifacts, `ci-bins` contains binaries organised by commit hash, while `releases` contains tagged versions. Sort by last modified date to find the most recent builds. -These binaries have jemalloc and io_uring statically linked and included with -them, so no additional dynamic dependencies need to be installed. +The binaries include jemalloc and io_uring statically linked, so you won't need to install any additional dependencies. -For the **best** performance: if you are using an `x86_64` CPU made in the last ~15 years, -we recommend using the `-haswell-` optimized binaries. These set -`-march=haswell`, which provides the most compatible and highest performance with -optimized binaries. The database backend, RocksDB, benefits most from this as it -uses hardware-accelerated CRC32 hashing/checksumming, which is critical -for performance. +#### Performance-optimised builds + +For x86_64 systems with CPUs from the last ~15 years, use the `-haswell-` optimised binaries for best performance. These binaries enable hardware-accelerated CRC32 checksumming in RocksDB, which significantly improves database performance. The haswell instruction set provides an excellent balance of compatibility and speed. + +If you're using Docker instead, equivalent performance-optimised images are available with the `-maxperf` suffix (e.g. `forgejo.ellis.link/continuwuation/continuwuity:latest-maxperf`). These images use the `release-max-perf` build profile with [link-time optimisation (LTO)](https://doc.rust-lang.org/cargo/reference/profiles.html#lto) and, for amd64, target the haswell CPU architecture. ### Compiling