benchmark: Bootstrap test repositories and upgrade tool versions
This is the first of a series of MRs to address #6732
We have an existing benchmarking tool which uses Ansible and Terraform to stand up a Gitaly and client instance on GCP. The client instance uses the ghz tool to perform gRPC benchmarking, while the Gitaly instance includes BPF and profiling tools to measure resource usage.
The tool depends on a GCP disk image named git-repos
to exist on the target project, but does not provide a way to automatically provision the image from a list of repositories. This MR primarily modifies the tool so a list of repositories can be provided in the config.yml
, which causes a new disk image called git-repos
to be created. A temporary VM is provisioned and a secondary disk is attached to it in order to clone the list of repos.
The MR also updates some tool versions which are out-of-date. Ubuntu could not be updated to the latest 24.04 LTS due to the perf
tool being missing for the kernel that GCP ships on that release (I'm not sure exactly what the problem is, but I didn't want to waste time debugging it).
You can create your own benchmarking instance by following the existing README instructions, but replacing the project: "gitaly-benchmark-0150d6cf"
line with your own GCP project ID.