Использование PgBouncer
Краткий обзор
pgbouncer [-d][-R][-v][-u user] <pgbouncer.ini>
pgbouncer -V|-h
Описание
PgBouncer — это пул соединений с PostgreSQL. Любое целевое приложение может быть подключено к PgBouncer, как если бы это был сервер PostgreSQL, и PgBouncer создаст соединение с реальным сервером или повторно использует одно из своих существующих соединений.
Цель pgbouncer — снизить влияние на производительность при открытии новых подключений к PostgreSQL.
Чтобы не нарушать семантику транзакций при использовании пула соединений, PgBouncer поддерживает несколько типов пулов при ротации соединений:
- Объединение сеансов. Самый вежливый способ. Когда клиент подключается, ему назначается подключение к серверу на все время, пока клиент остается подключенным. Когда клиент отключается, подключение к серверу возвращается в пул. Это метод по умолчанию.
- Объединение транзакций. Соединение с сервером назначается клиенту только во время транзакции. Когда PgBouncer замечает, что транзакция завершена, соединение с сервером возвращается в пул.
- Объединение утверждений. Самый агрессивный метод. Соединение с сервером будет возвращено в пул сразу после завершения запроса. В этом режиме транзакции с несколькими операторами запрещены, так как они могут прерваться.
Интерфейс администрирования PgBouncer состоит из нескольких новых SHOW
команд, доступных при подключении к специальной «виртуальной» базе данных PgBouncer.
Быстрый запуск
Базовая настройка и использование заключается в следующем:
-
Создайте файл pgbouncer.ini. Простой пример:
[databases]
template1 = host=localhost port=5432 dbname=template1
[pgbouncer]
listen_port = 6432
listen_addr = localhost
auth_type = md5
auth_file = userlist.txt
logfile = pgbouncer.log
pidfile = pgbouncer.pid
admin_users = someuser -
Создайте
userlist.txt
файл, содержащий пользователей, которым разрешено:"someuser" "same_password_as_in_server"
-
Запустите PgBouncer:
$ pgbouncer -d pgbouncer.ini
-
Пусть приложение (или клиент psql) подключается к PgBouncer, а не напрямую к серверу PostgreSQL:
$ psql -p 6432 -U someuser template1
-
Управляйте PgBouncer, подключившись к специальной административной базе данных PgBouncer и выполнив
SHOW HELP;
для начала работы:$ psql -p 6432 -U someuser pgbouncer
pgbouncer=# SHOW HELP;
NOTICE: Console usage
DETAIL:
SHOW [HELP|CONFIG|DATABASES|FDS|POOLS|CLIENTS|SERVERS|SOCKETS|LISTS|VERSION|...]
SET key = arg
RELOAD
PAUSE
SUSPEND
RESUME
SHUTDOWN
[...] -
После внесения изменений в файл
pgbouncer.ini
, нужно перезагрузить его с помощью:pgbouncer=# RELOAD;
Переключатели командной строки
-d
, --daemon
Запуск в фоновом режиме. Без этого процесс будет выполняться на переднем плане. В режиме демона требуется установка pidfile и logfile или syslog. После перехода в фоновый режим в stderr не будут записываться сообщения журнала.
-R
, --reboot
УСТАРЕЛО: вместо этой опции используйте скользящий перезапуск с несколькими процессами PgBouncer, прослушивающими один и тот же порт с помощью so_reuseport. Выполните перезапуск в режиме онлайн. Это означает подключение к работающему процессу, загрузку открытых сокетов из него и последующее их использование. Если активного процесса нет, загрузитесь в обычном режиме.
Работает только в том случае, если ОС поддерживает сокеты Unix и unix_socket_dir
не отключена в конфигурации. Не работает с TLS-соединениями, они прерываются.
-u ИМЯ ПОЛЬЗОВАТЕЛЯ
, --user=ИМЯ ПОЛЬЗОВАТЕЛЯ
Переключение на данного пользователя при запуске.
-v
, --verbose
Увеличить детализацию. Может использоваться несколько раз.
-q
, --quiet
Не выводить сообщения в stderr. Это не влияет на уровень детализации сообщений, но stderr использовать нельзя. Для использования в сценариях init.d.
-V
, --version
Показать версию.
-h
, --help
Показать краткую справку.
Консоль администратора
Консоль доступна при обычном подключении к базе данных PgBouncer:
$ psql -p 6432 pgbouncer
Только пользователи, указанные в параметрах конфигурации admin_users
или stats_users
, могут войти в консоль. (За исключением случаев, когда auth_type=any
, тогда любой пользователь может войти в качестве stats_user.)
Кроме того, имя пользователя PgBouncer позволяет войти в систему без пароля, если вход осуществляется через сокет Unix и клиент имеет тот же UID пользователя Unix, что и запущенный процесс.
В настоящее время консоль администратора поддерживает только простой протокол запросов. Некоторые драйверы используют расширенный протокол запросов для всех команд, эти драйверы не будут работать с ним.
Команды SHOW
Команды SHOW
выводят информацию. Каждая команда описана ниже.
SHOW STATS
Показывает статистику. В этой и связанных с ней командах общие показатели отсчитываются с момента запуска процесса, промежуточные значения обновляются каждые stats_period
:
database
Статистика представлена по каждой базе данных.
total_xact_count
Общее количество SQL-транзакций, объединенных в пул PgBouncer.
total_query_count
Общее количество SQL-команд, объединенных в пул PgBouncer.
total_server_assignment_count
Общее количество раз, когда сервер был назначен клиенту
total_received
Общий объем сетевого трафика в байтах, полученный PgBouncer.
total_sent
Общий объем сетевого трафика в байтах, отправленный PgBouncer.
total_xact_time
Общее количество микросекунд, затраченных PgBouncer при подключении к PostgreSQL в рамках транзакции, либо при простое в рамках транзакции, либо при выполнении запросов.
total_query_time
Общее количество микросекунд, затраченных PgBouncer на активное подключение к PostgreSQL и выполнение запросов.
total_wait_time
Время, которое клиенты проводят в ожидании ответа сервера, в микросекундах. Обновляется, когда клиентскому соединению назначается внутреннее соединение.
total_client_parse_count
Общее количество подготовленных запросов, созданных клиентами. Применимо только в режиме отслеживания именованных подготовленных запросов, см. max_prepared_statements
.
total_server_parse_count
Общее количество подготовленных операторов, созданных PgBouncer на сервере. Применимо только в режиме отслеживания именованных подготовленных операторов, см. max_prepared_statements
.
total_bind_count
Общее количество подготовленных операторов, подготовленных для выполнения клиентами и отправленных в PostgreSQL с помощью PgBouncer. Применимо только в режиме отслеживания именованных подготовленных операторов, см. max_prepared_statements
.
avg_xact_count
Среднее количество транзакций в секунду за последний период статистики.
avg_query_count
Среднее количество запросов в секунду за последний период статистики.
avg_server_assignment_count
Среднее количество обращений к серверу за секунду в течение последнего периода сбора статистики.
avg_recv
Среднее количество полученных (от клиентов) байт в секунду.
avg_sent
Среднее количество отправленных (клиентам) байт в секунду.
avg_xact_time
Средняя продолжительность транзакции в микросекундах.
avg_query_time
Средняя продолжительность запроса, в микросекундах.
avg_wait_time
Время, которое клиенты проводят в ожидании сервера, в микросекундах (среднее время ожидания клиентов, которым был назначен сервер, в течение текущего stats_period
).
avg_client_parse_count
Среднее количество подготовленных операторов, созданных клиентами. Применимо только в режиме отслеживания именованных подготовленных операторов, см. max_prepared_statements
.
avg_server_parse_count
Среднее количество подготовленных операторов, созданных PgBouncer на сервере. Применимо только в режиме отслеживания именованных подготовленных операторов, см. max_prepared_statements
.
avg_bind_count
Среднее количество подготовленных операторов, подготовленных для выполнения клиентами и переданных в PostgreSQL с помощью PgBouncer. Применимо только в режиме отслеживания именованных подготовленных операторов, см. max_prepared_statements
.
SHOW STATS_TOTALS
Подмножество SHOW STATS, показывающее общие значения (total_).
SHOW STATS_AVERAGES
Подмножество SHOW STATS, показывающее средние значения (avg_).
SHOW TOTALS
Как SHOW STATS, но агрегированное по всем базам данных.
SHOW SERVERS
type
S, для сервера.
user
Имя пользователя, которое PgBouncer использует для подключения к серверу.
database
Имя базы данных.
replication
Если для подключения к серверу используется репликация. Может быть отключена, логическая или физическая.
state
Состояние подключения к серверу PgBouncer: активно, ожидает, используется, проверяется, новое, активно_отменено, отменяется.
addr
IP-адрес сервера PostgreSQL.
port
Порт сервера PostgreSQL.
local_addr
Адрес начала подключения на локальном компьютере.
local_port
Порт запуска подключения на локальном компьютере.
connect_time
Когда было установлено соединение.
request_time
Когда был отправлен последний запрос.
wait
Не используется для подключений к серверу.
wait_us
Не используется для подключений к серверу.
close_needed
1 если соединение будет закрыто как можно скорее, потому что идет перезагрузка файла конфигурации или обновление DNS изменило информацию о соединении, или было выдано RECONNECT.
ptr
Адрес внутреннего объекта для этого подключения.
link
Адрес клиентского соединения, с которым сопряжен сервер.
remote_pid
PID процесса серверной части. Если подключение осуществляется через сокет Unix и операционная система поддерживает получение информации об идентификаторе процесса, то это PID операционной системы. В противном случае он извлекается из пакета отмены, отправленного сервером, который должен быть PID, если сервер — PostgreSQL, но это случайное число, если сервер — другой PgBouncer.
tls
Строка с информацией о соединении TLS или пустая, если не используется TLS.
application_name
Строка, содержащая application_name в связанном клиентском соединении, или пустая строка, если она не установлена или если связанного соединения нет.
prepared_statements
Количество подготовленных на сервере операторов. Это число ограничено параметром max_prepared_statements
id
Уникальный идентификатор для сервера.
SHOW CLIENTS
type
C, для клиента.
user
Пользователь, подключенный к клиенту.
database
Имя базы данных.
replication
Если клиентское подключение использует репликацию. Может быть отключено, логическое или физическое.
state
Состояние клиентского подключения: активно, ожидает, активно_отменить_запрос или ожидает_отменить_запрос.
addr
IP-адрес клиента.
port
Исходный порт клиента.
local_addr
Адрес окончания подключения на локальном компьютере.
local_port
Конечный порт подключения на локальном компьютере.
connect_time
Временная метка времени подключения.
request_time
Временная метка последнего запроса клиента.
wait
Текущее время ожидания в секундах.
wait_us
Микросекундная часть текущего времени ожидания.
close_needed
не используется для клиентов
ptr
Адрес внутреннего объекта для этого подключения.
link
Адрес подключения к серверу, с которым связан клиент.
remote_pid
Идентификатор процесса, если клиент подключается через сокет Unix и ОС поддерживает его получение.
tls
Строка с информацией о соединении TLS или пустая, если не используется TLS.
application_name
Строка, содержащая application_name значение, заданное клиентом для этого соединения, или пустая строка, если значение не было задано.
prepared_statements
Количество подготовленных отчетов, которые подготовил клиент
id
Уникальный идентификатор для клиента.
SHOW POOLS
Для каждой пары (база данных, пользователь) создается новая запись в пул.
database
Имя базы данных.
user
Имя пользователя.
cl_active
Клиентские подключения, которые либо связаны с серверными подключениями, либо находятся в режиме ожидания без запросов на обработку.
cl_waiting
Клиентские соединения, которые отправили запросы, но еще не получили подключения к серверу.
cl_active_cancel_req
Клиентские подключения, которые передали запросы на отмену на сервер и ожидают ответа сервера.
cl_waiting_cancel_req
Клиентские соединения, которые еще не отправили на сервер отмены запроса.
sv_active
Соединения с сервером, которые связаны с клиентом.
sv_active_cancel
Подключения к серверу, которые в данный момент пересылают запрос на отмену.
sv_being_canceled
Серверы, которые обычно могут простаивать, но не делают этого до тех пор, пока не будут выполнены все запросы на отмену в процессе выполнения, отправленные для отмены запроса на этом сервере.
sv_idle
Соединения с сервером, которые не используются и могут быть немедленно использованы для клиентских запросов.
sv_used
Серверные подключения, которые простаивали более server_check_delay секунд, поэтому им требуется server_check_query секунд для запуска, прежде чем их можно будет использовать снова.
sv_tested
Подключения к серверу, которые в данный момент выполняются либо server_reset_query, либо server_check_query.
sv_login
Подключения к серверу в данный момент находятся в процессе входа в систему.
maxwait
Сколько секунд ждал первый (самый старый) клиент в очереди. Если это значение начинает расти, значит, текущий пул серверов не обрабатывает запросы достаточно быстро. Причиной может быть либо перегрузка сервера, либо слишком маленький размер пула.
maxwait_us
Микросекундная часть максимального времени ожидания.
pool_mode
Используемый режим объединения.
load_balance_hosts
Если хост пула содержит список, разделенный запятыми, используется load_balance_hosts.
SHOW PEER_POOLS
Для каждого настроенного однорангового узла создается новая запись peer_pool.
database
Идентификатор настроенной одноранговой записи.
cl_active_cancel_req
Клиентские подключения, которые передали запросы на отмену на сервер и ожидают ответа сервера.
cl_waiting_cancel_req
Клиентские соединения, которые еще не отправили на сервер отмены запроса.
sv_active_cancel
Подключения к серверу, которые в данный момент пересылают запрос на отмену.
sv_login
Подключения к серверу в данный момент находятся в процессе входа в систему.
SHOW LISTS
Отображать следующую внутреннюю информацию в столбцах (не строках):
databases
Количество баз данных.
users
Количество пользователей.
pools
Количество пулов.
free_clients
Количество свободных клиентов. Это клиенты, которые отключились, но PgBouncer сохраняет выделенную для них память, чтобы ее можно было повторно использовать для будущих клиентов и избежать перераспределения.
used_clients
Количество использованных клиентов.
login_clients
Количество клиентов в состоянии входа в систему.
free_servers
Количество свободных серверов. Это отключенные серверы, но PgBouncer сохраняет выделенную для них память, чтобы ее можно было повторно использовать для будущих серверов и избежать выделения памяти.
used_servers
Количество использованных серверов.
dns_names
Количество DNS-имен в кеше.
dns_zones
Количество DNS-зон в кеше.
dns_queries
Количество DNS-запросов в полете.
dns_pending
не используется
SHOW USERS
name
Имя пользователя
pool_size
Пользовательское значение pool_size. или NULL, если не задано.
reserve_pool_size
Пользовательское переопределение reserve_pool_size. или NULL, если не задано.
pool_mode
Переопределение пользователем pool_mode или NULL, если не задано.
max_user_connections
Параметр max_user_connections для пользователя. Если этот параметр не задан для конкретного пользователя, будет отображаться значение по умолчанию.
current_connections
Текущее количество подключений к серверу, открытых этим пользователем ко всем серверам.
max_user_client_connections
Параметр max_user_client_connections для пользователя. Если этот параметр не задан для конкретного пользователя, будет отображаться значение по умолчанию.
current_client_connections
Текущее количество клиентских подключений, открытых для PgBouncer у этого пользователя.
SHOW DATABASES
name
Имя настроенной записи базы данных.
host
К хосту подключается PgBouncer.
port
Порт, к которому подключается PgBouncer.
database
Фактическое имя базы данных, к которой подключается PgBouncer.
force_user
Если имя пользователя указано в строке подключения, то соединение между PgBouncer и PostgreSQL устанавливается с указанным пользователем, независимо от того, кто является клиентом.
pool_size
Максимальное количество подключений к серверу.
min_pool_size
Минимальное количество подключений к серверу.
reserve_pool_size
Максимальное количество дополнительных подключений к этой базе данных.
server_lifetime
Максимальное время жизни подключения к серверу для этой базы данных
pool_mode
Переопределить режим пула базы данных или оставить значение NULL, если будет использоваться значение по умолчанию.
load_balance_hosts
Если хост содержит список, разделенный запятыми, то в load_balance_hosts базы данных он будет указан как хост.
max_connections
Максимальное количество допустимых подключений к серверу для этой базы данных, заданное параметром max_db_connections, глобально или для каждой базы данных.
current_connections
Текущее количество подключений к серверу для этой базы данных.
max_client_connections
Максимальное количество допустимых клиентских подключений для этого экземпляра PgBouncer, заданное параметром max_db_client_connections для каждой базы данных.
current_client_connections
Текущее количество клиентских подключений к этой базе данных.
paused
1, если эта база данных в данный момент приостановлена, иначе 0.
disabled
1, если эта база данных в данный момент отключена, иначе 0.
SHOW PEERS
peer_id
Идентификатор настроенной одноранговой записи.
host
К хосту подключается PgBouncer.
port
Порт, к которому подключается PgBouncer.
pool_size
Максимальное количество подключений к серверу, которые могут быть осуществлены к этому узлу.
SHOW FDS
Внутренняя команда — показывает список используемых файловых дескрипторов с прикрепленным к ним внутренним состоянием.
Когда подключенный пользователь имеет имя «pgbouncer», подключается через сокет Unix и имеет тот же UID, что и запущенный процесс, фактические файловые дескрипторы передаются по соединению. Этот механизм используется для перезапуска в режиме онлайн.
Эта команда также блокирует внутренний цикл обработки событий, поэтому ее не следует использовать во время работы PgBouncer.
fd
Числовое значение файлового дескриптора.
task
Один из пулеров, клиентских или серверных.
user
Пользователь соединения, использующий FD.
database
База данных соединения, использующего FD.
addr
IP-адрес соединения, использующего FD, unix, если используется сокет Unix.
port
Порт, используемый соединением с использованием FD.
cancel
Клавиша отмены для этого подключения.
link
fd для соответствующего сервера / клиента. NULL, если неактивен.
SHOW SOCKETS, SHOW ACTIVE_SOCKETS
Показывает низкоуровневую информацию о сокетах или только об активных сокетах. Сюда входит информация, отображаемая в разделах SHOW CLIENTS и SHOW SERVERS, а также другая низкоуровневая информация.
SHOW CONFIG
Отображаются текущие параметры конфигурации, по одному на строку, со следующими столбцами:
key
Имя переменной конфигурации
value
Значение конфигурации
default
Значение конфигурации по умолчанию
changeable
yes или no — показывает, можно ли изменить переменную во время работы. Если no, переменную можно изменить только при загрузке. Используйте SET, чтобы изменить переменную во время работы.
SHOW MEM
Показывает низкоуровневую информацию о текущих размерах различных разделов внутренней памяти. Представленная информация может быть изменена.
SHOW DNS_HOSTS
Показывает имена хостов в кеше DNS.
hostname
Имя хоста.
ttl
Сколько секунд до следующего поиска.
addrs
Список адресов, разделенных запятыми.
SHOW DNS_ZONES
Показывает зоны DNS в кеше.
zonename
Название зоны.
serial
Текущий серийный номер.
count
Имена хостов, принадлежащих этой зоне.
SHOW VERSION
Показывает версию PgBouncer.
SHOW STATE
Показывает настройки состояния PgBouncer. Текущие состояния: активное, приостановленное и ожидающее.
Команды управления процессом
PAUSE [база данных]
PgBouncer пытается отключиться от всех серверов. При отключении от каждого сервера ожидается, что это подключение к серверу будет освобождено в соответствии с режимом объединения в пул (в режиме объединения транзакций транзакция должна завершиться, в режиме объединения операторов оператор должен завершиться, а в режиме объединения сеансов клиент должен отключиться). Команда не будет выполнена до тех пор, пока все подключения к серверам не будут отключены. Используется во время перезапуска базы данных.
Если указано имя базы данных, только эта база данных будет приостановлена.
Новые подключения клиентов к приостановленной базе данных будут ожидать вызова RESUME.
DISABLE [база данных]
Отклонить все новые клиентские подключения к данной базе данных.
ENABLE [база данных]
Разрешить новые клиентские подключения после предыдущей команды DISABLE.
RECONNECT [база данных]
Закрыть каждое открытое соединение с сервером для данной базы данных или для всех баз данных после его освобождения (в соответствии с режимом пула), даже если срок его действия еще не истек. Новые соединения с сервером могут быть установлены немедленно и подключаться по мере необходимости в соответствии с настройками размера пула.
Эта команда полезна, если настройки подключения к серверу изменились, например, для постепенного перехода на новый сервер. Эту команду не нужно выполнять, если строка подключения в pgbouncer.ini была изменена и перезагружена (см. ПЕРЕЗАГРУЗКА) или если изменилось разрешение DNS, потому что в этом случае эквивалент этой команды будет выполнен автоматически. Эта команда нужна только в том случае, если что-то, находящееся ниже PgBouncer, перенаправляет подключения.
После выполнения этой команды может пройти некоторое время, в течение которого некоторые серверные подключения будут направляться к старому месту назначения, а некоторые — к новому. Это, скорее всего, имеет смысл только при переключении трафика только для чтения между репликами только для чтения или при переключении между узлами в конфигурации репликации с несколькими ведущими узлами. Если необходимо одновременно переключить все подключения, вместо этого рекомендуется использовать PAUSE. Чтобы закрыть серверные подключения без ожидания (например, при аварийном переключении, а не при постепенном переключении), также рассмотрите KILL.
KILL [база данных]
Немедленно отбросить все клиентские и серверные подключения к данной базе данных.
Новые подключения клиентов к отключенной базе данных будут ожидать вызова RESUME.
KILL_CLIENT id
Немедленно разорвать указанное клиентское соединение вместе со всеми серверными соединениями для данного клиента. Клиент, которого нужно разорвать, определяется по значению id
, которое можно найти с помощью команды SHOW CLIENTS
.
Пример команды будет выглядеть примерно так: KILL_CLIENT 1234
.
SUSPEND
Все буферы сокетов очищаются, и PgBouncer перестает прослушивать данные в них. Команда не будет выполнена, пока все буферы не будут очищены. Используется во время онлайн-перезагрузки PgBouncer.
Новые подключения клиентов к приостановленной базе данных будут ожидать вызова RESUME.
RESUME [база данных]
Продолжить работу с предыдущей командой KILL, PAUSE или SUSPEND.
SHUTDOWN
Процесс PgBouncer завершится.
SHUTDOWN WAIT_FOR_SERVERS
Прекратить прием новых подключений и завершить работу после отключения всех серверов. По сути, это то же самое, что и команды PAUSE и SHUTDOWN, за исключением того, что это также прекращает прием новых подключений в ожидании PAUSE, а также принудительно отключает клиентов, ожидающих подключения к серверу.
SHUTDOWN WAIT_FOR_CLIENTS
Прекратите принимать новые подключения и завершите процесс после того, как все существующие клиенты отключатся. Эту команду можно использовать для перезапуска двух процессов PgBouncer с нулевым временем простоя по следующей процедуре:
- Запустите два или более процессов PgBouncer на одном и том же порту с помощью
so_reuseport
(рекомендуется настроить пиринг, но это необязательно). Чтобы добиться нулевого времени простоя при перезапуске, будем перезапускать эти процессы по очереди, оставляя остальные запущенными для приема соединений во время перезапуска одного из них. - Сначала выберите процесс для перезапуска, назовем его A.
- Запустите
SHUTDOWN WAIT_FOR_CLIENTS
(или отправьтеSIGTERM
) процессу A. - Заставьте всех клиентов повторно подключиться. Возможно, потребуется подождать некоторое время, пока пул на стороне клиента не вызовет повторное подключение в соответствии с
server_idle_timeout
(или аналогичной) конфигурацией. Или, если пул на стороне клиента не используется, возможно, потребуется перезапустить клиентов. Как только все клиенты повторно подключатся. Процесс A завершится автоматически, так как к нему больше не будут подключаться клиенты. - Запустите процесс A снова.
- Повторите шаги 3, 4 и 5 для каждого из оставшихся процессов, пока не перезапустите все процессы.
RELOAD
Процесс PgBouncer перезагрузит файлы конфигурации и обновит изменяемые параметры. Это касается основного файла конфигурации, а также файлов, указанных в параметрах auth_file
и auth_hba_file
.
PgBouncer уведомляет о том, что при перезагрузке файла конфигурации изменяются параметры подключения к базе данных. Существующее подключение к серверу по старому адресу будет закрыто при следующем освобождении подключения к серверу (в соответствии с режимом объединения), а новые подключения к серверу сразу же будут использовать обновленные параметры подключения.
WAIT_CLOSE [база данных]
Дождитесь, пока все серверные подключения к указанной базе данных или ко всем базам данных не выйдут из состояния «close_needed» (см. SHOW SERVERS). Это можно сделать после RECONNECT или RELOAD, чтобы дождаться полной активации соответствующего изменения конфигурации, например, в сценариях переключения.
Другие команды
SET key = arg
Изменяет параметр конфигурации (см. также SHOW CONFIG). Например:
SET log_connections = 1;
SET server_check_query = 'select 2';
Обратите внимание, что эта команда запускается в консоли администратора PgBouncer и устанавливает настройки PgBouncer. Команда SET, запущенная в другой базе данных, будет передана серверу PostgreSQL как любая другая команда SQL.
Сигналы
SIGHUP
Перезагрузить конфигурацию. То же самое, что ввести команду RELOAD в консоли.
SIGTERM
Супербезопасное завершение работы. Дождитесь, пока все существующие клиенты не отключатся, но не принимайте новые подключения. Это то же самое, что и команда SHUTDOWN WAIT_FOR_CLIENTS в консоли. Если этот сигнал получен во время завершения работы, то вместо «супербезопасного завершения работы» запускается «немедленное завершение работы». В версиях PgBouncer до 1.23.0 этот сигнал вызывал «немедленное завершение работы».
SIGINT
Безопасное завершение работы. То же самое, что и команда SHUTDOWN WAIT_FOR_SERVERS на консоли. Если этот сигнал получен во время завершения работы, то вместо «безопасного завершения работы» запускается «немедленное завершение работы».
SIGQUIT
Немедленное завершение работы. То же самое, что и команда SHUTDOWN на консоли.
SIGUSR1
То же самое, что поставить на PAUSE на консоли.
SIGUSR2
То же самое, что выдавать RESUME на консоли.
Настройки Libevent
Из документации Libevent:
Можно отключить поддержку epoll, kqueue, devpoll, poll или select, установив переменные среды EVENT_NOEPOLL, EVENT_NOKQUEUE, EVENT_NODEVPOLL, EVENT_NOPOLL или EVENT_NOSELECT соответственно.
При установке переменной среды EVENT_SHOW_METHOD libevent отображает используемый им метод уведомления ядра.