2010-09-03 40 views
1

Nous utilisons une base de données postgres très encombrante et très encombrante (au point que nous aurions dû faire du regroupement de connexions, mais il n'y a pas de temps maintenant). En faisant un peu de dépannage, j'utilisais netstat pour me montrer combien de connexions il y avait à postgres. Je verrais souvent plus que ce que j'avais spécifié dans le fichier postgres.conf (via max_connections).connexions postgres dépassant max_connections?

je voyais 1400-1600 les connexions via netstat même si j'avais max_connections mis à 1000.

quelqu'un a une idée de ce qui se passe? comment exactement cela peut-il arriver?

tout aperçu sur ce serait génial.

Répondre

2

Est-il possible que ces connexions étaient déjà fermées? Windows par exemple ne pas fermer immédiatement la connexion, mais il le change à indiquer « TIME_WAITING.

Ainsi, les connexions entre dans NetSat mais sont en fait fermés.

Seuls ceux qui apparaissent comme « RECONNU » sont connexions "en direct"

Btw: vous pouvez simplement mettre un pooler de connexion devant votre serveur PostgreSQL sans changer votre application, pgPool (ou pgBouncer) prétendra être un vrai serveur PostgreSQL pour l'application et fera la mise en commun "derrière son dos"

0

Utiliser un pool de connexion Plus d'un 10 00 connexions vont ralentir la base de données de manière significative et même pour 1000 connexions, vous avez besoin de matériel $$$$$ avec beaucoup de cœurs et de RAM. L'utilisation d'un pool de connexion est beaucoup plus efficace.

+0

je sais. Heureusement, il s'agit d'une pièce sérieuse de matériel serveur avec 32 Go de RAM, 16 cœurs, et du bœuf supplémentaire appliqué. Il est livré en production la semaine prochaine, nous ne pouvons donc pas apporter de gros changements de code. devra faire dans une mise à jour de version. appris notre leçon cependant. Le problème était que les tests et les exigences changeaient un peu à la fin. pensé que nous allions être à environ 150 connexions. –

+1

Comme je l'ai déjà écrit: avec pgPool ou pgBouncer vous n'avez pas besoin de changer quelque chose dans votre code pour utiliser le pool de connexion –