Support multiple PgBouncer instances on the same port
PgBouncer v1.12.0 (https://github.com/pgbouncer/pgbouncer/releases/tag/pgbouncer_1_12_0) added an so_reuseport
config variable to support the following:
Add a setting to turn on the SO_REUSEPORT socket option. On some operating systems, this allows running multiple PgBouncer instances on the same host listening on the same port and having the kernel distribute the connections automatically
We may want to be able to launch multiple PgBouncer instances on the same host to solve the single-core bottleneck issues that we've been seeing. The infrastructure team is investigating Odyssey (https://gitlab.com/gitlab-com/gl-infra/infrastructure/issues/7776), but this may be an easier solution to drop in right away.
Adding support for the config option is easy; making this work with runit may be more challenging. Maybe we just want to support at most 2 PgBouncer instances to start?