PgBouncer улучшает производительность PostgreSQL в условиях высокой нагрузки

Приложения и игры / Desktop / PgBouncer улучшает производительность PostgreSQL в условиях высокой нагрузки
05.07.2024

Эффективное управление подключениями к базе данных имеет решающее значение для поддержания производительности и надежности ваших экземпляров PostgreSQL. Производительность PostgreSQL может ухудшаться при чрезмерном количестве одновременных подключений, что делает решения для пула подключений, такие как PgBouncer, необходимыми для сред с высоким трафиком. В этой статье мы рассмотрим шаги по настройке PgBouncer, легковесного пулера подключений для PostgreSQL, и его конфигурации для оптимизации подключений к базе данных.

Почему стоит использовать PgBouncer?

PostgreSQL может эффективно обрабатывать ограниченное количество одновременных подключений. Рекомендуется устанавливать максимальное количество подключений ниже 10 на одно ядро ЦП, с максимальным пределом в 20 на одно ядро ЦП. Если вашему приложению необходимо обрабатывать больше сеансов пользователей, использование пулера подключений, такого как PgBouncer, становится необходимым. PgBouncer снижает накладные расходы на установление и закрытие подключений за счет повторного использования пула установленных подключений.

Предварительные требования

Прежде чем начать, убедитесь, что у вас установлены следующие зависимости:

  • PostgreSQL
  • Python3 с psycopg2

Вы можете установить эти зависимости с помощью следующих команд:

dnf install python3-psycopg2-2.9.9-1PGDG.rhel9.x86_64.rpm # Зависимость
dnf install pgbouncer-1.22.1-42PGDG.rhel9.x86_64.rpm

Настройка PgBouncer

  1. Настройка аутентификации пользователей

    Сначала создадим файл userlist для управления аутентификацией пользователей в PgBouncer.

    psql -Atq -h 10.*.**.** -p 5432 -U postgres -d postgres -c "SELECT concat('"', usename, '" "', passwd, '"') FROM pg_shadow" >> /etc/pgbouncer/userlist.txt
  2. Редактирование конфигурации PgBouncer

    Далее настроим файл pgbouncer.ini. Откройте файл в вашем любимом текстовом редакторе:

    vi /etc/pgbouncer/pgbouncer.ini

    Добавьте следующую конфигурацию:

    [databases]
    * = port=5432
    
    [pgbouncer]
    pool_mode = session
    listen_addr = 10.5.**.**
    default_pool_size = 100
    reserve_pool_size = 20
    max_client_conn = 500
    admin_users = postgres
    ignore_startup_parameters = extra_float_digits
    logfile = /var/log/pgbouncer/pgbouncer.log
    pidfile = /var/run/pgbouncer/pgbouncer.pid
    listen_port = 6432
    auth_file = /etc/pgbouncer/userlist.txt
    client_tls_sslmode = require
    client_tls_ca_file = /etc/pgbouncer/root.crt
    client_tls_key_file = /etc/pgbouncer/pgbouncer.key
    client_tls_cert_file = /etc/pgbouncer/pgbouncer.crt
  3. Перезапуск и включение PgBouncer

    После редактирования конфигурации перезагрузите и перезапустите службу PgBouncer для применения изменений:

    systemctl restart pgbouncer
    systemctl enable pgbouncer

    Вы можете проверить статус службы PgBouncer, чтобы убедиться, что она работает правильно:

    systemctl status pgbouncer
  4. Подключение к PgBouncer

    Теперь вы можете выполнять операции с базой данных через порт PgBouncer:

    psql -p 6432

    Для подключения к интерфейсу управления PgBouncer:

    psql -p 6432 pgbouncer
  5. Мониторинг и управление PgBouncer

    Для мониторинга управления пулом:

    show pools;

    Для просмотра статистики:

    show stats;

    Для получения дополнительных команд вы можете обратиться к:

    psql -Atq -h 10.*.**.** -p 5432 -U postgres -d postgres -c "SELECT concat('"', usename, '" "', passwd, '"') FROM pg_shadow" >> /etc/pgbouncer/userlist.txt
  6. Обновление системных лимитов

    Наконец, обновите файл службы systemd для увеличения лимитов файловых дескрипторов. Чтобы PgBouncer мог обрабатывать большое количество одновременных подключений, необходимо увеличить лимиты файловых дескрипторов. Файловые дескрипторы являются важными ресурсами, используемыми операционной системой для управления открытыми файлами и сокетами. Каждое подключение к базе данных через PgBouncer потребляет файловый дескриптор. Если лимит слишком низок, PgBouncer не сможет принять дополнительные подключения.

Эти шаги помогут вам настроить и оптимизировать PgBouncer для эффективного управления подключениями к базе данных PostgreSQL в высоконагруженных средах.

Обновлено: 05.07.2024
uTorrent

uTorrent

Полная версия uTorrent скачать бесплатно на windows и андроид

5
1032 отзывы
4856580
скачали
Zona

Zona

Полная версия Zona скачать бесплатно на windows и андроид

4
614 отзывы
805358
скачали
Майнкрафт

Майнкрафт

Полная версия Minecraft скачать бесплатно на windows и андроид

5
750 отзывы
415372
скачали
Geometry Dash

Geometry Dash

Полная версия Geometry Dash скачать бесплатно на windows и андроид

4
539 отзывы
292099
скачали
Обновление MacOS Tahoe включает улучшения для геймеров

Обновление MacOS Tahoe включает улучшения для геймеров

Apple представила MacOS 26 Tahoe с новыми функциями: окно-управление, приложение 'Игры', переводы в реальном времени и настроек иконок. Эти возможности напоминают функции Windows.

Chernobylite предлагает значительные скидки на Steam

Chernobylite предлагает значительные скидки на Steam

Chernobylite, ведущая постапокалиптическая видеоигра, предлагает значительную скидку на Steam. Не упустите возможность погрузиться в мир, где приключения и радиация идут рука об руку, всего за $5.99 USD до 10 июня.

Norse предлагает уникальное сочетание тактик и градостроительства

Norse предлагает уникальное сочетание тактик и градостроительства

Norse: Oath of Blood объединяет тактические элементы и градостроительство, предлагая игрокам захватывающий опыт. Игроки управляют норвежским воином Гуннаром с целью отомстить за смерть отца, развивая поселение и формируя альянсы. Запуск игры планируется на 2025 год.

Railborn приглашает в мир необычных приключений

Railborn приглашает в мир необычных приключений

Railborn, новая игра в жанре survival на движущемся поезде, обещает уникальный опыт open-world exploration и стартует в раннем доступе.

Баротравма готовит новое расширение для кооперативной игры

Баротравма готовит новое расширение для кооперативной игры

Баротравма расширяется с новым DLC, в котором появятся новые фракции и возможности управления подводными базами. Это укрепит позиции игры как уникального кооператива в мире глубоководных приключений.

Отсутствие Marvel's Blade вызвало беспокойство об Arkane

Отсутствие Marvel's Blade вызвало беспокойство об Arkane

Фанаты обеспокоены отсутствием Marvel's Blade на Xbox Games Showcase и будущим Arkane под управлением Microsoft.

Mindseye предлагает 45 часов контента при запуске

Mindseye предлагает 45 часов контента при запуске

Новая видеоигра Mindseye, созданная под руководством Лесли Бензиса, предлагает 45 часов контента на старте с элементами ввода пользователя.

Xbox Ally: Новый уровень портативного гейминга в 2025 году

Xbox Ally: Новый уровень портативного гейминга в 2025 году

Xbox Ally от Microsoft и ASUS обещает революцию в мире портативного гейминга, с поддержкой Windows 11 и доступом к крупнейшим игровым площадкам.

Новая игра Rogue Point улучшит опыт кооперативного геймплея

Новая игра Rogue Point улучшит опыт кооперативного геймплея

Rogue Point от Crowbar Collective предлагает тактический FPS опыт без PvP. Участники формируют команды до четырех игроков для выполнения миссий с акцентом на тактику и кооп.

Blind Descent: Новая игра о выживании в тайном мире Марса

Blind Descent: Новая игра о выживании в тайном мире Марса

Blind Descent — это новая игра о выживании для до четырёх игроков, которые исследуют таинственную экосистему Марса в поисках пропавшей команды.

Все статьи