Pull to refresh

Comments 4

Спасибо за статью.
Сколько времени у вас проработала эта связка пгпулов, случались ли нештатные ситуации (вылет ноды из пула, отвал по простой проверке), если да, то как часто. И главный вопрос, какова нагрузка (кол-во запросов в сутки будет достаточно)?

У меня был не очень хороший опыт с пгпулом, и меня мягко говоря он разочаровал, поэтому интересно как у других.
В настоящий момент я сам всё еще наблюдаю за работой этой связки — она пока не в продакшене.
Дата на скриншотах — реальная дата настройки, прошло 10 дней всего.
Сутки мучал pbench'ем — ничего не отвалилось… НО! После теста уже без нагрузки pgpool не смог достучаться до живого primary backend'a и переключился на secondary — если это его обычное поведение, то, однозначно нужно искать другое решение, продолжаю наблюдать пока…
TPS при TPC-B ~650 показывал, голый select ~4500 (scaling factor 5, ключи запуска -j8 -c64) — это при дефолтовой конфигурации postgresql и выключенном synchronous_commit. Показатель, IMHO, весьма скромный, но pgpool тут не при чем, прямое тестирование мастера показывает ~590 по TPC-B, незначительный прирост я так понимаю дает чтение со slave'а.
Большое спасибо за руководство!

Полностью повторил вашу конфигурацию, но на обычных серверах, а не в среде AWS.

При падении мастера (нода 0), в скрипт failover не передаются параметры нового мастера (нода 1):

$ grep 'failover' /var/log/messages
failover_handler: no valid DB node found
execute command: /var/lib/postgresql/9.4/main/failover.sh 0 0
failover: set new primary node: -1


При падении же слейва, все работает как ожидается:

$ grep 'failover' /var/log/messages
execute command: /var/lib/postgresql/9.4/main/failover.sh 1 0 db1.example.com /var/lib/postgresql/9.4/main
failover: set new primary node: 0
failover: set new master node: 0


Не сталкивались с подобным? Буду признателен за любую подсказку! Такое чувство, что pgpool не видит новую мастер-ноду, хотя она успешно работает в standby-режиме до падения мастера.

$ grep 'failover.sh' /etc/pgpool2/pgpool.conf
failover_command = '/var/lib/postgresql/9.4/main/failover.sh %d %P %H %R'
failover: set new primary node: -1
У меня такое происходило если pgpool еще «не оправился от предыдущих падений» и через «show pool_nodes» показывал статус ноды отличный от 2. Если нода сбойная, то на нее не будет выполнено переключение.
Only those users with full accounts are able to leave comments. Log in, please.

Articles