Sign in

Search issue titles and bodies, change requests and comments. Private repositories you cannot read are not included.

vole
Clone

Read only, no credentials:

https://rodent.software/git/vole.git

Write over SSH with a registered key:

git clone ssh://git@0.0.0.0:2222/vole.git

A free and open-source forge that lives in your Git repo.

Add a load harness behind the load tag

0448a9783b69753a26bd7478e9eb70c510a8e487 · Keenan Nemetz · 9d ago · parent 14b5c648

Add a load harness behind the load tag

Every limit in the operations guide was chosen from reasoning. The harness
is what replaces that with a number: a real server on a loopback port with
a temporary data directory, seeded with a repository that has history,
files at several sizes, an issue and a change with comments and an
approval, and a release artifact in the LFS store.

One scenario proves it end to end: anonymous shallow clones over HTTP.
Each iteration probes `info/refs` so a refusal is reported as the status
it was refused with, then clones. Workers run until the configured
duration, and the report gives requests, throughput, p50/p90/p99 latency,
statuses, failure reasons, and the peak of RSS, file descriptors,
goroutines and the server's git child processes.

It is behind `//go:build load`, so `go test ./...` and the verify workflow
never run it, and nothing in it ships in the binary. The other read-path
scenarios in #100 add their own step functions to the same runner.

Run it:

  VOLE_LOAD_SCENARIO=clone VOLE_LOAD_CONCURRENCY=8 VOLE_LOAD_DURATION=30s \
    go test -tags load,sqlite_fts5 -run '^TestLoad$' -v ./server

docs/README.md +1

@@ -36,6 +36,7 @@ After that, pick the page that matches what you want to do.
36 36 | [Configuration](configuration.md) | Change addresses, limits, and site settings |
37 37 | [Accounts and access](accounts-and-access.md) | Add accounts, manage SSH keys, and set permissions |
38 38 | [Operations](operations.md) | Back up, recover, and clean up an instance |
39 | [Load testing](load-testing.md) | Measure throughput and latency on a real instance |
39 40 | [Packages](packaging.md) | Build, install, and upgrade a `.deb` or `.rpm` |
40 41 | [CLI reference](cli.md) | Look up a command or option |
41 42