Skip to content

Make Puma an explicit dependency

Matthias Käppler requested to merge mk-add-puma-dependency into master

We discovered in gitlab-org/charts/gitlab!1783 (closed) that when using a Chart, gitlab-exporter was never running on Puma as had been the case with Omnibus. By making Puma an explicit dependency of gitlab-exporter, we can better control when it is used and which version of it.

This also pins Puma to 5.1.1, matching the version we run Rails on (Sinatra is indifferent to the version of Puma used, so this was distorting performance tests depending on the environment we were using).

Puma 5 comes with increased idle memory use of ~5MB vs Puma 4:

[10:06:13] work/gitlab-exporter::master ✗ smem -P gitlab-exporter
  PID User     Command                         Swap      USS      PSS      RSS 
217515 mk       puma 4.3.5.gitlab.3 (tcp://        0    37412    37768    42116

vs

[10:11:23] work/gitlab-exporter::mk-add-puma-dependency ✔ smem -P gitlab-exporter    
  PID User     Command                         Swap      USS      PSS      RSS 
219430 mk       puma 5.1.1 (tcp://0.0.0.0:9        0    42272    42677    47220

I closed all MRs already that would see us use Puma by default, so this change will not affect any GitLab environment unless the server.name option is explicitly changed to Puma.

Edited by Matthias Käppler

Merge request reports