Remnawave разворачивается в режиме INSTANCE_TYPE=api (несколько форков через PM2 по числу ядер, регулируется API_INSTANCES), плюс отдельные процессы INSTANCE_TYPE=processor (BullMQ-воркеры users, nodes, очереди serial-operations) и INSTANCE_TYPE=scheduler (review-nodes task, expiry-watch и т.д.).
У каждого процесса свой Prisma-пул, дефолт у Prisma: num_physical_cpus * 2 + 1, что на 8-ядерной машине = 17 коннектов на один процесс. Уже 4 процесса дают 60+ коннектов в idle, под нагрузкой больше.
Postgres дефолт max_connections=100 пробивается на ровном месте, а каждый коннект стоит ~10MB RSS у backend-процесса Postgres, то есть 100 коннектов = 1GB только под бэкенды.
PgBouncer впереди Postgres в pool_mode=transaction с default_pool_size 20–30 сжимает 100+ клиентских коннектов до 25 серверных при сохранении пиковой пропускной способности.