Перейти к основному содержимому

Использование PgBouncer

Краткий обзор

pgbouncer [-d][-R][-v][-u user] <pgbouncer.ini>
pgbouncer -V|-h

Описание

PgBouncer — это пул соединений с PostgreSQL. Любое целевое приложение может быть подключено к PgBouncer, как если бы это был сервер PostgreSQL, и PgBouncer создаст соединение с реальным сервером или повторно использует одно из своих существующих соединений.

Цель pgbouncer — снизить влияние на производительность при открытии новых подключений к PostgreSQL.

Чтобы не нарушать семантику транзакций при использовании пула соединений, PgBouncer поддерживает несколько типов пулов при ротации соединений:

  • Объединение сеансов. Самый вежливый способ. Когда клиент подключается, ему назначается подключение к серверу на все время, пока клиент остается подключенным. Когда клиент отключается, подключение к серверу возвращается в пул. Это метод по умолчанию.
  • Объединение транзакций. Соединение с сервером назначается клиенту только во время транзакции. Когда PgBouncer замечает, что транзакция завершена, соединение с сервером возвращается в пул.
  • Объединение утверждений. Самый агрессивный метод. Соединение с сервером будет возвращено в пул сразу после завершения запроса. В этом режиме транзакции с несколькими операторами запрещены, так как они могут прерваться.

Интерфейс администрирования PgBouncer состоит из нескольких новых SHOW команд, доступных при подключении к специальной «виртуальной» базе данных PgBouncer.

Быстрый запуск

Базовая настройка и использование заключается в следующем:

  1. Создайте файл 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
  2. Создайте userlist.txt файл, содержащий пользователей, которым разрешено:

    "someuser" "same_password_as_in_server"
  3. Запустите PgBouncer:

    $ pgbouncer -d pgbouncer.ini
  4. Пусть приложение (или клиент psql) подключается к PgBouncer, а не напрямую к серверу PostgreSQL:

    $ psql -p 6432 -U someuser template1
  5. Управляйте 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
    [...]
  6. После внесения изменений в файл 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 с нулевым временем простоя по следующей процедуре:

  1. Запустите два или более процессов PgBouncer на одном и том же порту с помощью so_reuseport (рекомендуется настроить пиринг, но это необязательно). Чтобы добиться нулевого времени простоя при перезапуске, будем перезапускать эти процессы по очереди, оставляя остальные запущенными для приема соединений во время перезапуска одного из них.
  2. Сначала выберите процесс для перезапуска, назовем его A.
  3. Запустите SHUTDOWN WAIT_FOR_CLIENTS (или отправьте SIGTERM) процессу A.
  4. Заставьте всех клиентов повторно подключиться. Возможно, потребуется подождать некоторое время, пока пул на стороне клиента не вызовет повторное подключение в соответствии с server_idle_timeout (или аналогичной) конфигурацией. Или, если пул на стороне клиента не используется, возможно, потребуется перезапустить клиентов. Как только все клиенты повторно подключатся. Процесс A завершится автоматически, так как к нему больше не будут подключаться клиенты.
  5. Запустите процесс A снова.
  6. Повторите шаги 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 отображает используемый им метод уведомления ядра.