Allow to dynamically change Puma configuration

Looking at https://gitlab.com/gitlab-org/gitlab-ce/issues/62876#note_183734170, and connected with our performance testing, I think it would be really helpful if we could change dynamically a number of threads and workers of Puma running in Cluster mode.

The execution flow could be:

  1. Change number of threads,
  2. Get /metrics to read the latest stats to see that change was applied, as this would also force to reboot all workers,
  3. Run tests,
  4. Gather /metrics to get memory usage after the test execution.
Assignee Loading
Time tracking Loading