web-dev-qa-db-fra.com

Comment PGBouncer aide-t-elle à accélérer Django=

J'ai des commandes de gestion basées sur Gevent. Étant donné que ma commande de gestion fait des milliers de demandes, je peux transformer toutes les appels de socket en appels non bloquants à l'aide de Gevent. Cela accélère vraiment ma demande car je peux faire des demandes simultanément.

Actuellement, le goulot d'étranglement de ma candidature semble être postgers. Il semble que c'est que la bibliothèque Psycopg utilisée pour la connexion à Django est écrite en C et ne prend pas en charge les connexions asynchrones.

J'ai également lu que l'utilisation de PGBouncer peut accélérer Postgres par 2x. Cela semble grand mais ce serait génial si quelqu'un pouvait expliquer comment Pgbouncer travaille et aide?

Merci

25

PGBouncer réduit la latence dans la mise en place de connexions en servant de proxy qui maintient un pool de connexion. Cela peut aider à accélérer votre application si vous ouvrez de nombreuses connexions de courte durée aux postgres. Si vous n'avez qu'un petit nombre de connexions, vous ne verrez pas une grande victoire.

11
Michael Mior