Multithreaded application server
Currently we span multiple unicorn processes to saturate the CPU.
If we use a multithreaded application server we can use one process, using much less memory.
This would be great for the responsiveness of GitLab on small machines (Raspberry Pi), VPS hosting (Digital Ocean) and reduce the cost of instances on AWS/GCE/Azure.
We tried running Puma before and it caused crashes.
A first step towards multithreading would be reducing the memory leaks GitLab currently has: https://gitlab.com/gitlab-org/gitlab-ce/issues/3700
BTW The backend (sidekiq) of GitLab is already multithreaded, although that also leaks memory.