Должен ли я уменьшить max_connections в PostgreSQL при использовании PgBouncer? - PullRequest
1 голос
/ 09 апреля 2020

Почему я должен уменьшать max_connections в PostgreSQL, когда я использую PgBouncer? Будет ли разница, если я установлю max_connections в конфигурации PostgreSQL равным 100 или 1000, когда я использую PgBouncer для ограничения подключений ниже?

1 Ответ

1 голос
/ 09 апреля 2020

Каждое возможное соединение резервирует некоторые ресурсы в разделяемой памяти, и некоторая внутренняя частная память также масштабируется к нему. Резервирование этой памяти, когда она никогда не будет использоваться, является пустой тратой ресурсов. Это было более серьезной проблемой в прошлом, когда ресурсы совместно используемой памяти были гораздо более трудоемкими, чем в современных ОС.

Кроме того, существует некоторый код, который должен перебирать все эти ресурсы, возможно, при удержании блокировок, поэтому для этого требуется больше времени, если для итерации требуется больше данных. Точная природа итерации и блокировок менялась от версии к версии, так как код был оптимизирован, чтобы сделать его более масштабируемым для большого количества процессоров.

Ни один из этих эффектов, вероятно, не будет огромным, когда большая часть возможные соединения на самом деле не используются. Возможно, наиболее важной причиной понижения max_connections является немедленная диагностика, если pgbouncer неправильно настроен и не выполняет свою работу правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...