diff options
author | Aleksei Lipniagov <alipniagov@gitlab.com> | 2019-06-25 15:11:06 +0300 |
---|---|---|
committer | Aleksei Lipniagov <alipniagov@gitlab.com> | 2019-06-28 13:49:57 +0300 |
commit | fb1d433703f902987a358af0d9cac12b64ec440e (patch) | |
tree | 8caf42f0323a3137747b87a6a93637dd736b0b15 /.gitlab | |
parent | 5ee5b280b05f63768f359d0b82d5edd490c0e7cd (diff) | |
download | gitlab-ce-fb1d433703f902987a358af0d9cac12b64ec440e.tar.gz |
Get memory data after booting app in production62722-boot-app-in-ci-and-check-memory
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.
Diffstat (limited to '.gitlab')
-rw-r--r-- | .gitlab/ci/memory.gitlab-ci.yml | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/.gitlab/ci/memory.gitlab-ci.yml b/.gitlab/ci/memory.gitlab-ci.yml index 2f3907a331a..ffe5dbdc31b 100644 --- a/.gitlab/ci/memory.gitlab-ci.yml +++ b/.gitlab/ci/memory.gitlab-ci.yml @@ -17,3 +17,26 @@ memory-static: - tmp/memory_*.txt reports: metrics: tmp/memory_metrics.txt + +# Show memory usage caused by invoking require per gem. +# Unlike `memory-static`, it hits the app with one request to ensure that any last minute require-s have been called. +# The application is booted in `production` environment. +# All tests are run without a webserver (directly using Rack::Mock by default). +memory-on-boot: + extends: .rspec-metadata-pg-10 + variables: + NODE_ENV: "production" + RAILS_ENV: "production" + SETUP_DB: "true" + SKIP_STORAGE_VALIDATION: "true" + # we override the max_old_space_size to prevent OOM errors + NODE_OPTIONS: --max_old_space_size=3584 + script: + # Both bootsnap and derailed monkey-patch Kernel#require, which leads to circular dependency + - DISABLE_BOOTSNAP=true PATH_TO_HIT="/users/sign_in" CUT_OFF=0.3 bundle exec derailed exec perf:mem >> 'tmp/memory_on_boot.txt' + - scripts/generate-memory-metrics-on-boot tmp/memory_on_boot.txt >> 'tmp/memory_on_boot_metrics.txt' + artifacts: + paths: + - tmp/memory_*.txt + reports: + metrics: tmp/memory_on_boot_metrics.txt |