Bootsnap speeds up Rails loading and now ships by default with Rails 5.2
apps. We should promote this to a default gem and test it out in
production. This will also make it possible for the Helm Charts to take
advantage of this.
It appears that Bootsnap with Rails 5.2.3 and all the GitLab CE gems
loads fine on an ARM platform now, so it's possible that
https://gitlab.com/gitlab-org/gitlab-ce/issues/34799 has been resolved.
Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/45230
Preload the app in `production` env, hit it with a single request, and
gather total gem memory consumption data using `derailed exec perf:mem`
from `derailed_benchmarks`. Present the result as MR metrics.
Preload the app in `production` env, hit it with a single request, and
gather total gem memory consumption data using `derailed exec perf:mem`
from `derailed_benchmarks`. Present the result as MR metrics.
This includes several changes:
- Rename memory-static to generate-gems-size-metrics-static
- Rename memory-static-objects to generate-gems-memory-metrics-static
- Change generate-gems-size-metrics-static interface. The script now
expect `bundle exec derailed bundle:mem` output as its input. The
script output to stdout, or stderr for error message.
- Change generate-gems-memory-metrics-static interface. The script now
expect `bundle exec derailed bundle:objects` output as its input.
The script output to stdout, or stderr for error message.
- Generate gem size metrics. Script generate-gems-size-metrics-static
extract each gem size from `bundle exec derailed bundle:mem` output.
Save output to metrics file in format: 'gem_size_mb{name="zip"} 0.5'
Two static memory benchmarks will be included in our CI pipeline. It
will load gems from the Gemfile and check the amount of RAM consumed
as well as the number of objects allocated and retained.
Aggregated values will be included as 'metrics' into MRs while full
reports will be downloadable as job artifacts.