Почему тебе нужен PgBouncer, как его установить? Оптимизируем веб-приложения с PostgreSQL
Фильм және анимация
Мой курс «Хардкорная веб-разработка» - course.to.digital
Книжный клуб Ботаним!, где мы читаем хорошие ИТ-книги: botanim.to.digital/
Telegram: t0digital.t.me
Сказать спасибо за это видео можно здесь - boosty.to/digitalize.team
PgBouncer - пулер соединений к PostgreSQL. Поговорим о том, что это, зачем нужно и почему делать приложения на Python без него так грустно, а затем установим и настроим PgBouncer.
Команда из видео:
echo "md5"$(echo -n 'PasswordUser' | md5sum | awk '{print $1}')
0:00 Как работает PostgreSQL?
1:37 В чём проблема?
3:53 Что с этим делать?
4:58 Как нам поможет PgBouncer?
7:19 Установка и настройка PgBouncer
11:14 Доработка приложения для PgBouncer
11:49 Выводы
/****************** about ******************/
Меня зовут Алексей Голобурдин, я программирую с 2004 года и на этом канале делюсь своим опытом. Я основатель и руководитель компаний:
- Диджитализируй digitalize.team, разрабатываем сложные IT системы для бизнеса;
- Salesbeat salesbeat.pro, комплексный модуль доставки для интернет магазинов.
Если у вас есть проект на разработку, пишите нам на hi@digitalize.team.
С другими предложениями, а также если вам нужна одна или несколько индивидуальных консультаций/уроков по разработке (3000 руб/час), пишите мне на alexey@salesbeat.pro.
Telegram канал - t.me/t0digital
ВК - digitalize.team
RuTube - rutube.ru/channel/24802975/ab...
Дзен - dzen.ru/id/6235d32cb64df01e6e...
Пікірлер: 240
ну про. плюсы рассказал, добавлю немного: 1. забыл упамянуть, что если юзать транзаакшин мод, то забудьте про препаред-стейтстмент, 2. дебажить запросы почти не реально, тяжело сматчить с pg_stat_activity 3. баунсер не решает проблем плохих запросов, если запрос ставит шаред-лок на таблицу, то хоть 2000 конеекшинов ставь ничего не поможет 4. есть прикольная альтернатива от Яндекса, одисей. в инете есть доклад какую проблему не смог решить баунсер и почему пришлось писать свой 5. с 11 версии постгрес спокойно держит 2000 соединений, но небольшая деградация происходит уже где то на 1000
@jandublianski744
3 жыл бұрын
"1. забыл упамянуть, что если юзать транзаакшин мод, то забудьте про препаред-стейтстмент" - спасибо! pool_mode = session работает так как надо
@barsukov_vv
3 жыл бұрын
@@mythbuster6126 интересная логика, random_page_cost так же равен 4, и что это могло значить?
@mihax56
3 жыл бұрын
@@mythbuster6126 дефолтные настройки ПГ выбраны таким образом, чтоб он на чайнике запускался - не надо их брать за эталон.
@sergeysemibratov509
2 ай бұрын
Since version 1.21.0 PgBouncer can track prepared statements in transaction pooling mode
Хотелось бы ещё тест нагрузочный посмотреть , как это работает :)
Класс👍. Побольше бы такого раскрытия нюансов и тонких мест web-приложений на python!
Спасибо за ваш труд, очень полезный контент. Жду информацию про курс
Один из самых содержательных капалов по питону. Спасибо! Очень классно!
Хм, классная штука, не знал, благодарю тебя!
Пошел применять) Спасибо
Очень полезное видео! Спасибо за твой контент🏆
Очень полезная информация. В ближайшее время настрою это на сервере!
О! Спасибо снова что-то новенькое узнал!
В MySQL Connection Pooling - это native штука. Спасибо что рассказал что со слоном тоже есть хороший тул! Респект!
Блин, как я без этого раньше работал?) Большое спасибо
Очень хочется больше видео!
Спасибо! Не знал. Возьму в работу
Код в видео выглядит очень стильно без фона. Как всегда интересно!
@t0digital
3 жыл бұрын
Спасибо!
Спасибо большое, нужно больше видео о подобных утилитах!
@t0digital
3 жыл бұрын
Будут:)
Можно как нибудь рассказать про SQLAlchemy?
@PaiNtRuTube
3 жыл бұрын
В алхимии из коробки более кастомизируемы параметры соединения, и кроме того есть такое понятие как "пул соединений"
Спасибо большое, надеюсь на канале скоро будет 1млн)
@t0digital
3 жыл бұрын
Идём к этому:)
Video uchun rahmat. Foydali ma'lumot bo'ldi! Nasib bo'lsa, Pgbouncerni proyektimizda qo'llab ko'ramiz.
Спасибо! только лайк! оч полезная инфа
Годно, очень годно! Спасибо большое! Я помню у нас его ставили для того, чтобы он закрывал коннекты которые простаивали в ожидании! И я о нем только слышал, а теперь все понятно объяснили 👍 лайк однозначно!
@t0digital
3 жыл бұрын
Спасибо! 💪
Спасибо за контент!
Большое спасибо. Буду теперь юзать новый инструмент.
@t0digital
3 жыл бұрын
Рад, что полезно!
Отлично! Подобное видео про WSGI и gunicorn будет?
Полезно. Доступно. Спасибо.
Кстати вместо `sudo vim` можно использовать `sudoedit`, чтобы не менять пользователя и использовать свой конфиг) Только EDITOR=vim поставить.
Используем Patroni для кластеризации PostgreSQL, там как раз pg_bouncer + consul или etcd можно
Спасибо за видео!
Огонь! Спасибо!
Спасибо, отлично объясняете!
@t0digital
3 жыл бұрын
Спасибо!
Классно, понятно рассказал!
спасибо! как всегда годнота!!!!
Дружищеееее! Спасибо!)
Интересный обзор 👍
кайф, пасиб, помогло видео!
Спасибо за видео! Обратите внимание на то, что по умолчанию ротации логов нет.
Спасибо! Благодаря Вашим видео, деплой сервера обошелся в разы быстрее. Да и вообще случился🙃
Спасибо за информацию! 7:41 - уже давно используют apt вместо apt-get.
@t0digital
3 жыл бұрын
Мышечная память, иногда apt пишу, иногда apt-get по-старинке
Спасибо за видео
круто) спасибо
Спасибо. Спас.
лайк, подписываюсь
Спасибо! Хороший урок. А можно ли разбить базу pgsql на несколько серверов? Как это сделать? оч интересно)
Отличное видео, как всегда. Книжка кстати, тоже отличная - это Бретт Слаткин, видимо третья редакция Effective Python (на русском бумажная только второй редакции доступна, но я все равно купил) - читается очень легко и имеет малый объем каждого совета. Не так пугает, как Бизлевская Книга рецептов к Пайтону.
@t0digital
3 жыл бұрын
Да, книжка отличная!
Очень полезно 👍
@t0digital
3 жыл бұрын
Йеее!
шикарный монтаж!
@t0digital
3 жыл бұрын
спасибо!
Приветствую! Спасибо за видео! На древнем php можно применить) а расскажи про SQL alchemy, там пуллер есть из коробки) А ещё интересно про зоопарк от апача узнать. Hbase, hdfs, zookeeper и т. д. Только не из докера, а как standalone решения ☺️
@arkadybagdasarov7306
Жыл бұрын
в sqlalchemy есть свой коннекшен пул, да, вот только если ты горизонтально увеличишь кол-во приложений - пулы в сумме выжрут весь постгрес лимит
Спасибо! Эх жалко подробнее не раскрыли проблемы CONN_MAX_AGE в django. Пошел искать....
Привет, Алексей! Вопрос об образовательной программе: в этом первом модуле запланирована ли какая-то обратная связь, д/з и т. п. Или это будут просто видео уроки? Спасибо за контент, нравится)
@t0digital
3 жыл бұрын
Привет! Первый модуль будет по фундаменту - как работает инет, как строятся веб приложения, из каких кирпичиков состоят, некоторая практика будет, но это не модуль по программированию, поэтому проверки дз на этом модуле не будет. Коммуникация будет обязательно, будут стрим 1 или 2 раза в неделю, где можно будет позадавать вопросы и получить ответы
@user-gx6jl6bt4h
3 жыл бұрын
Спасибо.
Зачёт!
Теперь осталось рассказать как с pgpool работать :)
Спасибо за видео! Если есть возможность, сними, пожалуйста, видео про создание и настройку кластера PostgreSQL с демонстрацией того как туда добавлять новые сервера и удалять вышедшие из строя (всякое же бывает) и чтоб при этом все данные оставались целыми. Если данных надо сохранять очень много, то хотелось бы иметь возможность простым добавлением ещё одного сервера (или пары - для репликации), добавлять физическое место для новых данных. Такое возможно?
СПАСИБО !!! Ты спас нас. Благодаря этому видео мы снизили нагрузку CPU и сайт "задышал". Postgres нагружал сервер до вечных около 100% (сайт стопорился в ЧНН), теперь около 50% в ЧНН !!!! Спасибо за годный контент.
@t0digital
3 жыл бұрын
Йее! Это хороший результат 💪
@anti1am3r
3 жыл бұрын
@@t0digital для проекта у которого нет ни архитектора, ни DBA, ни разработчиков, видимо.
@user-no4jf5uj9q
3 жыл бұрын
Что за сайт ? Расскажи подробнее, сколько запросов генерил сайт на каждого юзера ? Может не правильно постгрес настроен ?
спасибо
Спасибо за видео, Алексей! Скажи, а для асинхронных фреймворков pgbouncer актуален? Там и соединение к БД, как правило, тоже асинхронное
@m0rtym0rty7
3 жыл бұрын
Возник такой же вопрос.
@dimak4528
3 жыл бұрын
Тоже возник этот вопрос
@t0digital
3 жыл бұрын
Вопрос не в синхронности или асинхронности запросов, вопрос, умеет ли библиотека доступа к БД делать свой пул. Asyncpg умеет. Если app сервер один и БД сервер один, то в таком случае такого встроенного пулера будет достаточно, если серверов больше, отдельный пулер понадобится
@user-lg6dt3jf1j
3 жыл бұрын
@@t0digital Спасибо!
@danquimby8317
3 жыл бұрын
думаю для асинхронных не страшно он просто будет ждать освобождения
Прикольная штука! Если что еще крутое заметишь или увидишь Обязательно записывай видос! Мы оценим!) Спасибо!)
Не знал, что для Пайтона стандарт - Постгрес. Спасибо!
@nikolaysokolov9027
3 жыл бұрын
@@user-ey7rd9ih4g я про MySQL или Марию DB думал. =)
@user-cs6sc5tj1y
3 жыл бұрын
Ну Пост сейчас стал шире применяться везде так что вполне себе можно принять такой вариант.
1. Слышал что есть какие-то с асинхронным скриптами в частности aiopg. Можете рассказать про этот момент. 2. Почему бы не поменять порт ПГ, а ПБ повесить на освободившися порт 5432, чтобы не менять никаких настроек в приложении?
Спасибо за подробное и одновременно простое объяснение. Возник вопрос, есть ли инструмен для PostgreSQL, который позволит работать с двумя инстансами БД? Одна будет мастер, другая реплика. В мастер БД будет всегда запись, а чтение либо с мастера либо с реплики. При этом джанга будет работать с БД через эту "прокси" как с одной БД. Я решал такую задачу, через написание своего роутера, но это гемморойное и довольное глючное решение.
@dann1kid
2 жыл бұрын
Ну просто пишешь два коннектора, затем например через peewee ты передаешь коннектор в конструктор в разных ситуациях (при чтении или при записи) и вот тебе пожалуйста. Хоть 10 инстансов, просто коннекторов больше используй
По поводу паролей, можно просто взять хэш из таблицы pg_shadow
А вот с др. Реляционками, например mssql или mysql как обстоит дело?
Можешь в одном из своих видео рассказать как правильно настроить storage и пользоваться им, спасибо тебе)
@doomymax577
3 жыл бұрын
Что такое сторадж в вашем понимании?
@sulfur32066
3 жыл бұрын
@@doomymax577 ну скажем у меня что-то крутиться на сервере heroku, который файлы не хранит, и нужен сторонний storage
@doomymax577
3 жыл бұрын
@@sulfur32066 на хероку есть доп услуги какие-то по подключению базюки или кэша, посмотри я думаю там такое есть
@sulfur32066
3 жыл бұрын
@@doomymax577 PostgresSQL можно подключить, но на счёт остального пока не в курсе
Спасибо! Полезно, пошел применять к проекту)) То есть стоит применять примерно при от 100 одновременных запросах к бд? На счет настройки порта 6432, где его изменять в настройках джанго settings.py: DATABASE['PORT': '6432'] (по умолчанию там пусто)? И это все изменения, дальше в проекте ничего не изменять? Как дела с курсом?
@sultanbekbeksultanov4214
3 жыл бұрын
даа, всё верно в settings.py надо поставить PORT:5432 , да его, но по умолчанию у PSQL стоит порт 5432. Если вы поставите новое значение, то оно поменяется
@user-rs5zq9hy4m
3 жыл бұрын
@@sultanbekbeksultanov4214 спасибо, друг) я так понял опечатка, в первом случае 6432)
Спасибо за видос) Такой вопрос. Получается PgBouncer можно доустановить прямо в Docker контейнер с Postgres и Postgres будет работать через PgBouncer?
@t0digital
11 ай бұрын
На проде базу в докер не стоит ставить
Круто я и не знал что PostgreSQL такое есть.
@t0digital
3 жыл бұрын
Ни дня без новых знаний:)
Блин я надеялся будет про репликацию
не понятно, можно ли оставить доступ по ролям, и будет-ли вообще работать правила в pg_hba?
Привет! Можешь сделать ролик о создании собственных пакетов и импорте их через pip из локального хранилища? Интересует самый простой малозатратный способ. Вчера поставил Gogs сервер, который не хотел запускаться на винде. Пришлось городить виртуальную машину с убунтой. Как-то всё слишком громоздко получается, хотя казалось бы надо просто подключить модуль.
ну ок, я смотрел внимательно и... остался один вопрос - вот мы все это взлетели. Реальных коннектов допустим 100. А в джанге то сколько ставить MAX_CONN_AGE ? есть какие то ориентиры?
Как насчет снять видео на тему программных брокеров сообщений (RabbitMQ, Kafka)? :D
Спасибо за видео! Хотел бы узнать, можешь посоветовать что-либо, для улучшения своих навыков в продумывании архитектуры проектов? То есть, как строить именно грамотную гибкую систему (бэкенд). Если это важно, то юзаю джанго. Есть ли что-то такое, например, просмотр какого то сорта видео, иные ресурсы или это только с практикой набивается?
@t0digital
3 жыл бұрын
Посоветовать сложно, но я подумаю. Практика это безусловно. Чтение чужого хорошего кода, кстати, очень поможет в этом. Так же как и работа с чужим плохим кодом впрочем. Хорошая архитектура она ведь для того, чтобы всем было удобно с ней работать, поддерживать, дорабатывать и тд, и чтение чужого кода это как раз то, что нужно для развития этого навыка написания красивого архитектурно выстроенного кода
@kalik54
3 жыл бұрын
@@t0digital Большое спасибо, лучше попробовать разобрать такие проекты как фласк или что то явно меньше?
@t0digital
3 жыл бұрын
@@kalik54 можно больше, можно меньше, там везде есть чему поучиться
@kalik54
3 жыл бұрын
@@t0digital Хорошо, снова большое спасибо)
подскажите, на чем лучше создавать сайт онлайн школы с видеоуроками, на чем строить? Django, Django-cms или может что-то еще?
@t0digital
3 жыл бұрын
Да пофик. На чем нравится, что знаете :)
Во всех битлиотеках под питон для постгреса есть пул, что в asyncpg , что в алхимии, psycopg
@t0digital
3 ай бұрын
Этого недостаточно. Много воркеров
@Диджитализируй!, сними ролик, пожалуйста, про отладку питоновского проекта на удаленном сервере по ssh с venv из vscode или pycharm
Привет! Когда выйдет обучающая программа?
@t0digital
3 жыл бұрын
Привет! В августе уже не успеваю смонтировать материалы, выйдет в начале сентября
Очень хотелось бы видеть видео про тесты в пайтоне, стоит ли ждать?)
@t0digital
3 жыл бұрын
Да
Super
Будет ли какой-нибудь ролик связанный с бд Oracle? Например чем он хуже/лучше постгрес, какие-нибудь удобные фишки в нем, которых нет в постгрес. Было бы интересно послушать!
@t0digital
3 жыл бұрын
Давно не работал с Oracle. Вспоминаю с теплом его, и как субд и как компанию)
@user-rg4fs5ys5w
3 жыл бұрын
@@t0digital Понял, спасибо большое за ответ!
Можно ли сравнить PostgreSQL + pgBouncer с Percona server. Использовали ли Вы Percona server в проектах?
@t0digital
3 жыл бұрын
перкону не использовал, ничего не могу про неё сказать
Подскажите, а нужен PgBouncer для .NET Core приложений, в которых используются Entity Framework (Npgsql) ? Не могу найти нигде адекватную информацию по такому моему. Или это актуально только для Python и PHP ? Спасибо!
@t0digital
3 жыл бұрын
не работал с .NET, надо смотреть, умеет ли он пулить соединения
@rbogdan8980
3 жыл бұрын
@@t0digital та что-то не могу найти вменяемой информации на эту тему. Утром создал вопрос на stackoverflow, пока тишина.
Привет, можешь сказать, пожалуйста, как опытный питонист, можно ли на питоне, на джанге создавать большие Энтерпрайз проекты, более-менее высокогогруженные, например как маркет озона? До этого писал на php symfony, там можно такие проекты создавать, а джанга я слышал очень плохо масштабируется, было бы интересно узнать что скажет опытный питонист?
@t0digital
3 жыл бұрын
Привет, питон это же не только джанга. Сама джанга не лидирует в производительности среди питон фреймворков, да, но не всегда производительность работы софта является приоритетом, чаще приоритет в скорости разработки софта. Узкие горлышки можно потом переписать на асинхронных фреймворках или вообще не на питоне.
А есть ли объяснение почему джанго так "неэффективно" ведет себя из коробки, что приходится юзать дополнительные штуки по типу баунсера? Ведь он же мог сам делать пул соединений
@slogic10
11 ай бұрын
Аналогичная мысль сходу.
А как сочетается PgBouncer с Асинхронным приложениями (которые разбирались в другом видео)? Если каждый асинхронный запрос требует коннекта к БД, то либо PgBouncer откроет на каждый такой запрос по соединению с БД, либо все асинхронные потоки выстроится в очередь - не?
@t0digital
3 жыл бұрын
Базе и pgbouncer'у пофик, какой код к нему стучится, асинхронный иди синхронный, они об этом не знают. Просто есть фреймворки и библиотеки доступа к БД, умеющие делать свой пул в каком-то виде, и есть не умеющие. Но в любом случае, даже если пул есть в библиотеке, баунсер не будет лишним, он умеет много чего, там можно ставить за ним несколько серверов баз, например, и класть нагрузку на несколько серверов, например, и тд
@ruzin-kokoc
3 жыл бұрын
@@t0digital С этим согласен. Возможно этот комментарий больше относится к прошлому видео про Асинхронный код, который работал быстрее синхронного под нагрузкой. Количество коннектов к БД (через pgBouncer или напрямую) может стать проблемой. В середине видео ты поменял 'session' на 'transaction' и было бы неплохо пояснить в чем разница (поставил на паузу и посмотрел все опции, какие есть). Transaction в большинстве случаев может решать, но не всегда. В нашем приложении нам пришлось бы оставить 'session', т.к. мы используем переменные в SQL, и если два разных потока будут затирать значения друг друга - целостность развалится.
покажи как в АКС кластере это сделать через докер
спасибо, не знаете как он с амазоновскими базами работает? На Аврору его можно прицепить или там свои у них оптимизации?
@t0digital
3 жыл бұрын
Они пилят своё aws.amazon.com/about-aws/whats-new/2020/04/amazon-rds-proxy-with-postgresql-compatibility-preview/
Вот это поворот. Как-то даже не ожидал такого подвоха от django. Интересно, почему не сделали pool из коробки
@t0digital
3 жыл бұрын
тоже удивился, когда узнал об этом
Подскажите пожалуйста когда информация про курс будет?! С работы ушел , хочу к вам попасть!!! Залайкайте ПОЖАЛУЙСТА!
@t0digital
3 жыл бұрын
В начале сент выходит первый модуль
@user-dy2ei6hl5q
3 жыл бұрын
@@t0digital Хотелось бы узнать подробнее, сколько модулей будет, сколько они ориентировочно будут длиться, не будет ли задержек с выходом следующих модулей, средняя цена модуля,это нужно для того чтобы спланировать полугодие по времени ( не суваться в другие курсы, если заминок не будет) и конечно спланировать финансы...Уверен вы скоро всё это осветите))
С mysql, похоже, в последние несколько лет везде проблемы. Я начинал разрабатывать на Rust, мне нужна была база данных, я скачал клиента mysql. Полезли такие непонятные проблемы, что аж пришлось на stackoverflow задавать вопрос. В итоге на stackoverflow мне влепили кучу лайков и сказали, что я нашел баг. Через пару дней "баг исправили". Ок, я обновился, а проект всё равно не компилится. Забил на это дело, поставил клиента postgre и всё заработало сразу. Хотя это было года 3 назад, может что-то изменилось. (Оффтоп) А ещё лет 12 назад в узких кругах был широко известен Firebird.
Пулеры нужны только на Postgre или на любую бд?
@rbogdan8980
3 жыл бұрын
В тех бд где не реализован MARS
@okopyl
3 жыл бұрын
@@rbogdan8980 буду очень благодарен если подскажете как можно нагуглить такие базы. Не получилось найти :(
@rbogdan8980
3 жыл бұрын
@@okopyl MS SQL Server например
а где ты такую кружку купил?
@t0digital
3 жыл бұрын
Hoff
@samirguseynov1684
3 жыл бұрын
все нашел
@samirguseynov1684
3 жыл бұрын
@@t0digital уже заказал, сагол)
Нужно иметь ввиду, что при установке pgbouncer могут обновиться зависимости postgres и следовательно рестартнется postgres (что критично для консистентности данных при большой нагрузке). По возможности надо выбирать конкретный релиз, который затронет наименьшее число других пакетов. Сейчас при установке pgbouncer на это напоролся
Md5 же уже устаревший стандарт хэширования. Сейчас не знаю какие актуальные, но последнее я использовал bcrypt. Если я не прав, аргументируйте, пожалуйста
@t0digital
3 жыл бұрын
сейчас в своем коде лучше не использовать md5, да
Странно, почему такая важная деталь не предусмотрена в djange из коробки?
@aquinary.
3 жыл бұрын
Потому что pgbouncer - это утилита, которую ставят в систему, а не как pip пакет. То есть это не pypi дистрибутив. С таким же успехом можно спросить, почему в django из коробки не работает redis.
Не понимаю почему эти bouncer- концепции де факто не зашиты в бд на уровне интерфейса. Ведь в перспективе роста нагрузки на бд, резиновый пул, всегда лучше статически заданных соединений.
@anti1am3r
3 жыл бұрын
Я не уверен, что им там место. Обычно пулы соединения используются на уровне приложений. По крайней мере в java/kotlin/netcore.
Жду видео "Почему тебе не нужен PgBouncer и нужен Odyssey".
это получается что вроде очереди для бд?
@t0digital
3 жыл бұрын
Да, типа того
Если использовать asyncpg, то pgbouncer не нужен, поскольку asyncpg имеет собственную реализацию пула соединений. Что ты думаешь на этот счет?
@t0digital
3 жыл бұрын
Если 1 application сервер с asyncpg кодом, и 1 сервер БД, то да, отдельный пулер не нужен, встроенного в asyncpg достаточно. Но если серверов с БД несколько или application серверов несколько, то отдельный пулер может понадобиться.
Как настроить DATABASES в приложении джанго не показали, пишет что неверный пароль!
@t0digital
11 ай бұрын
вангую, что он прав, видимо неверный:)
@doszhanm6936
11 ай бұрын
@@t0digital пароль постгреса версный на 1000 %. В джанго есть конфигурация DATABASES называется. Он принимает хост, порт, логин, пароль, имя базы данных постгреса, но теперь-то туда надо вносить данные от pbgouncer. А пароль pbgouncer не работает с этими конфигами, потому что там md5.
@t0digital
11 ай бұрын
подключись к pgbouncer из консоли, убедись, что соединение идёт, и те же credentials проставь и в джанге. Проблема не в джанге
@doszhanm6936
11 ай бұрын
@@t0digital проблема оказалось в md5. Если в конфиге pgbouncer ставить plain и в файле прописать пароль в открытом виде, то все прекрасно работает. Видимо в 14 версии postgres по умолчанию md5 авторизация отключена. Из-за этого pgbouncer не может авторизоваться на стороне базы данных. Но так ли это на самом деле, не стал уточнять...
@doszhanm6936
11 ай бұрын
я свой первый вопрос не правильно поставил, оказывается ошибка была не неверный пароль, а неверный тип пароля.
Почему бы не использовать in-proc пул соединений? Зачем этот внешний промежуточный (и местами глюченный) софт? Почему взяли и так просто сменили режим (session -> transactional) без объяснений? Почему на серваке всего 100 подключений по умолчанию? Насколько его можно поднять?
@zakharka3938
9 күн бұрын
Если у вас только один процесс работает с базой, то можно обойтись и in-proc пулом. А если у вас несколько процессов (на одном или нескольких хостах), то лучше иметь внешний пул разделяемый между всеми процессами.
эм, а какова природа того, что постоянно открывается новый коннект к db ? .. смотрится очень странно, это особенность работы python ?
@t0digital
3 жыл бұрын
особенность джанги, вернее дефолтной настройки джанги. Асинхронные либы умеют в свой пул (asyncpg напр)