Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BD / 10 лаба / postgresql.pdf
Скачиваний:
96
Добавлен:
03.06.2015
Размер:
647.69 Кб
Скачать

5

Мультиплексоры соединений

5.1Введение

Мультиплексоры соединений(программы для создания пула коннектов) позволяют уменьшить накладные расходы на базу данных, когда огромное количество физических соединений тянет производительность PostgreSQL вниз. Это особенно важно на Windows, когда система ограничивает большое количество соединений. Это также важно для веб-приложений, где количество соединений может быть очень большим.

Программы, которые создают пулы соединений:

PgBouncer

Pgpool

Также некоторые администраторы PostgreSQL с успехом используют Memcached для уменьшения работы БД за счет кэширования данных.

5.2PgBouncer

Это мультиплексор соединений для PostgreSQL от компании Skype. Существуют три режима управления.

Session Pooling. Наиболее «вежливый» режим. При начале сессии клиенту выделяется соединение с сервером; оно приписано ему в течение всей сессии и возвращается в пул только после отсоединения клиента.

Transaction Pooling. Клиент владеет соединением с бакендом только в течение транзакции. Когда PgBouncer замечает, что транзакция завершилась, он возвращает соединение назад в пул.

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

93

5.3.PgPool-II vs PgBouncer

Кдостоинствам PgBouncer относится:

малое потребление памяти (менее 2 КБ на соединение);

отсутствие привязки к одному серверу баз данных;

реконфигурация настроек без рестарта.

Базовая утилита запускается так:

$pgbouncer [-d][-R][-v][-u user] <pgbouncer.ini>

Простой пример для конфига:

[databases]

template1 = host=127.0.0.1 port=5432 dbname=template1 [pgbouncer]

listen_port = 6543 listen_addr = 127.0.0.1 auth_type = md5 auth_file = userlist.txt logfile = pgbouncer.log pidfile = pgbouncer.pid admin_users = someuser

Нужно создать файл пользователей userlist.txt примерного содержания:"someusersame_password_as_in_server"

Админский доступ из консоли к базе данных pgbouncer:

$psql -h 127.0.0.1 -p 6543 pgbouncer

Здесь можно получить различную статистическую информацию с помощью команды SHOW.

5.3PgPool-II vs PgBouncer

Все очень просто. PgBouncer намного лучше работает с пулами соединений, чем PgPool-II. Если вам не нужны остальные фичи, которыми владеет PgPool-II (ведь пулы коннектов это мелочи к его функционалу), то конечно лучше использовать PgBouncer.

PgBouncer потребляет меньше памяти, чем PgPool-II

у PgBouncer возможно настроить очередь соединений

в PgBouncer можно настраивать псевдо базы данных (на сервере они могут называтся по другому)

Хотя некоторые используют PgBouncer и PgPool-II совместно.

94

Соседние файлы в папке 10 лаба
  • #
    03.06.2015256 б3710.x.sql
  • #
    03.06.201518.15 Кб40B-tree
  • #
    03.06.2015350 б38create_index.sql
  • #
    03.06.2015160 б38drop_index.sql
  • #
    03.06.2015348.71 Кб38northwind.postgre.sql
  • #
    03.06.2015647.69 Кб96postgresql.pdf
  • #
    03.06.201519.47 Кб39Индексы
  • #
    03.06.201523.14 Кб41Инструкция по оптимизации Postresql 8.x
  • #
    03.06.201519.34 Кб41Композитные индексы
  • #
    03.06.201531.68 Кб37Оптимизация запросов - статья из Википедии
  • #
    03.06.201513.81 Кб41Типы индексов