Найти - Пользователи
Полная версия: Корректная организация пула соединений
Начало » Python для экспертов » Корректная организация пула соединений
1
grok
Доброго времени суток!
Ситуация: мой сервер крутится на apache, mod_wsgi и PostgreSQL. Для каждого запроса создается новый коннект к базе данных. Возникла необходимость ограничить количество данных соединений. Для этого использую psycopg2.pool. Но так как apache для каждого запроса создает по процессу (ведь он многопоточный), то создавать пул в *.wsgi файле (application) не является правильным; ведь на каждый такой созданный apache-процесс, будет создаваться свой пул соединений с базой.

Как в данном случае организовать пул соединений?

Была идея запустить в фоне python-скрипт как сервис и отдавать/принимать коннект с базой, но как оказалось объект connection является unpickable объектом.

Спасибо.
asava
есть хорошая статья по теме, в ней есть инструкции как настраивать и сравнениние эффективности, pgBouncer лучше
http://www.askthepony.com/blog/2011/07/django-and-postgresql-improving-the-performance-with-no-effort-and-no-code/
slav0nic
grok
У постгреса форковая модель, а форки тяжелее нитей. Поэтому для него куча коннектов/дисконнектов смертеподобна, слишком велик оверхед. Посему +1 к asava, сам везде юзаю pgBouncer в том числе и на python.su. Тем более он делает коннекты постоянными, помимо ограничения количества.
Lexander
+1 за pgBouncer.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB