max_connections 3k - для 12 ядер это овердофига. Не надо 3к коннектов делать, нужен пул коннектов.
Получается, уменьшив сейчас максимальное количество подключений до 800, есть вероятность избавится от OOM.
Правильно ли я понимаю, что если 1 воркер (читаем как одна машина) обрабатывает только одну транзакцию и ей требуется только одно подключение, то создавать у такой машины пул из коннектов в размере 20 — ошибка? Это, наверное, не играет особой роли, но использую SQLAlchemy (python), и создаю пул подключений с pool_size=20
.