Adjust Puma Worker Killer behavior
Problem to solve
Improve the handling of Puma worker restarts.
Intended users
Further details
In order to recycle Puma workers to avoid memory leaks, we currently use a puma_worker_killer with a low memory threshold. This makes sure that we regularly recycle workers. But this has some undesired side-effects in that we may terminate workers too quickly on busy instances (for example, gitlab.com) or too slowly on lightly-used instances.
This leads to a lot of over-tuning of the memory limit to get the desired restart rate.
Proposal
Rather than aggressively tune the worker killer memory limit, we can enable regular timer-based restarts of the Puma workers. This will allow for easier operation while still keeping Ruby memory and performance leaks contained.