|
PgBouncer: (autodb_idle_timeout) и пулы соединений, автоматически создаваемые через "*"
|
|||
---|---|---|---|
#18+
В настройках PgBouncer коннект с PostgreSQL осуществляется через "*" (конкретная БД не указывается): автор* = host=... port=...В этом случае при подключении через указанную строку подключения для каждой пары "БД - пользователь" автоматически создаётся пул физических подключений к PostgreSQL. И если в течение [autodb_idle_timeout] секунд ни одно из этих физических соединений не будет востребовано, то: 1) все физические соединения в таком пуле будут закрыты 2) сам пул тоже будет закрыт 3) статистика по этому пулу (БД - пользователь) будет очищена Если же строка подключения задаётся с указанием БД: авторdbname = host=... port=...то пул соединений, созданный для комбинации (БД - пользователь) закрываться НЕ будет (даже если он не будет содержать физических соединений) и его статистика сбрасываться не будет. Вопросы : 1 ) Верно ли описана логика работы пулов для двух вариантов ? 2 ) Как в первом случае (БД не указывается) добиться точно такого же поведения пулов PgBouncer, что и в случае явного указания БД ? Т.е. нужно, чтобы автоматически создаваемые пулы (БД - пользователь) не закрывались по истечении (autodb_idle_timeout) секунд и их статистика не сбрасывалась. Можно задать (autodb_idle_timeout = большое значение), но такой вариант выглядит как заплатка. Конкретные базы данных указывать тоже незачем - лишние зависимости не нужны. При том, что права на БД и так уже выставлены как нужно (на уровне PostgreSQL). ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2020, 22:40 |
|
PgBouncer: (autodb_idle_timeout) и пулы соединений, автоматически создаваемые через "*"
|
|||
---|---|---|---|
#18+
Cyrax_02, 1)да верно 2)никак судя по документации -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2020, 23:03 |
|
PgBouncer: (autodb_idle_timeout) и пулы соединений, автоматически создаваемые через "*"
|
|||
---|---|---|---|
#18+
автор2)никак судя по документации Вот здесь предлагают вариант (autodb_idle_timeout=0): https://pgbouncer-general.pgfoundry.narkive.com/arwjhlU3/clients-loosing-connection-to-database > It would not matter for more active databases that would have been tagged active again if any new connection > would arrive before autodb_idle_timeout triggers. ?But if the database stays idle, it will be killed even if it has connections As a workaround, set autodb_idle_timeout=0Только вот 0, судя по всему, не отключает (autodb_idle_timeout), а наоборот, приведёт к тому, что автоматически созданный пул будет сразу закрыт после использования. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2020, 23:28 |
|
PgBouncer: (autodb_idle_timeout) и пулы соединений, автоматически создаваемые через "*"
|
|||
---|---|---|---|
#18+
Когда непонятно можно посмотреть в код. https://github.com/pgbouncer/pgbouncer/blob/pgbouncer_1_14_0/src/janitor.c#L591 0 отключает удаление автоматических пулов. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2020, 10:46 |
|
PgBouncer: (autodb_idle_timeout) и пулы соединений, автоматически создаваемые через "*"
|
|||
---|---|---|---|
#18+
Melkij 0 отключает удаление автоматических пулов. Поскольку в официальной справке об этом не упоминается, то и поведение это может быть легко и молча изменено. Всё-таки, надёжнее будет поставить что-то вродеCyrax_02 autodb_idle_timeout = 31536000то бишь 365 дней... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2020, 13:33 |
|
PgBouncer: (autodb_idle_timeout) и пулы соединений, автоматически создаваемые через "*"
|
|||
---|---|---|---|
#18+
Напишите issue мол не задокументировано как отключить autodb_idle_timeout. Peter Eisentraut периодически заглядывает в списки, простая правка дока. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2020, 13:57 |
|
|
start [/forum/topic.php?fid=53&gotonew=1&tid=1994475]: |
0ms |
get settings: |
11ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
27ms |
get topic data: |
9ms |
get first new msg: |
7ms |
get forum data: |
3ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 130ms |
0 / 0 |