Run GPT suite against Rails 7.2
As we did for Ruby 3.3 Run gpt test suite against Ruby 3.3 (#516194 - closed) we should run a test to check for any performance issues with Ruby 3.3 and Rails 7.2
Prerequisite
MR against GitLab project with Ruby 3.3/ Rails 7.2 and Omnibus package built in the MR.
Steps
-
Build 10k environment using image MR above and GET
- Copy 10k configuration example under a new folder, run symlink
- Update configs to use your test GCP project. For example, using sandbox project.
- Create token on GitLab.com, it will be passed to Ansible command later to download custom GitLab package from MR
-
If target package is Jammy, add
machine_image = "ubuntu-2204-lts"to enviroment.tf to switch to 22.04 (GET installs 20.04 by default) -
Add
gitlab_deb_download_urlandgitlab_deb_download_url_headersfor vars.yaml to switch GET using custom Omnibus package from MR - https://gitlab.com/gitlab-org/gitlab-environment-toolkit/-/blob/main/docs/environment_configure.md#gitlab-omnibus-installation-options - example how it can look like:- gitlab_deb_download_url: "{{ lookup('env','GITLAB_UBUNTU_IMAGE') | default('https://gitlab.com/api/v4/projects/14588374/jobs/5259591132/artifacts/pkg/ubuntu-jammy/gitlab.deb', true)}}" # update to use latest image url gitlab_deb_download_url_headers: { 'PRIVATE-TOKEN': "{{ lookup('env','PRIVATE_PROD_TOKEN')}}" } # use your .com token
- Build env following GET docs
-
Check that Ruby version is new on Rails node - should be
3.3 - Ensure required rate limits are disabled - for GPT testing, custom Post Configure task is used https://gitlab.com/gitlab-org/quality/gitlab-environment-toolkit-configs/quality/-/blob/main/custom_task_files/gitlab_tasks/post_configure.yml#L1-35 applies it automatically (see https://gitlab.com/gitlab-org/quality/gitlab-environment-toolkit-configs/quality/-/blob/main/configs/reference_architectures/10k/ansible/inventory/vars.yml#L24-40 and https://gitlab.com/gitlab-org/gitlab-environment-toolkit/-/blob/main/docs/environment_advanced.md#custom-tasks.
- Provision test VM in the same region zone as 10k env => to trigger seed and performance testing against env from it to reduce latency
-
Seed with performance data - https://gitlab.com/gitlab-org/quality/performance/-/blob/main/docs/environment_prep.md
- Horizontal Data
- Vertical Large Project Data
-
Run GPT from test VM - https://gitlab.com/gitlab-org/quality/performance/-/blob/main/docs/k6.md. Explore using
screento trigger commands to ensure that command won't interrupt if your internet connection is unstable.-
Running against 10k environment so using
60s_200rps.json
-
Running against 10k environment so using
- Analyse results, compare it to https://gitlab.com/gitlab-org/quality/performance/-/wikis/Benchmarks/Latest/10k
- Export Server performance metrics from Grafana, share link in the issue
- Destroy env and test VM
Results
Edited by Andy Hohenner