GNU/Linux >> Tutoriels Linux >  >> Linux

Comment calculer max_connections pour PostgreSQL et default_pool_size pour pgbouncer ?

Tout d'abord, veuillez lire notre question canonique sur la planification des capacités.

Deuxièmement, vous regardez ce mal.
La quantité de mémoire (ou toute autre ressource) dont vous disposez ne dicte pas le nombre de connexions que vous définissez, le nombre de connexions dont vous avez besoin dicte la puissance d'un serveur que vous devez acheter.
Les besoins en ressources par connexion sont donnés dans le manuel de manière très détaillée, ainsi que discutés sur le Wiki auquel vous avez lié. Déterminez ce dont votre environnement a besoin (ou faites une supposition éclairée) et assurez-vous que le matériel sur lequel vous allez fonctionner peut gérer ce que vous allez lui lancer.

Plus précisément en ce qui concerne les limites de connexion et la taille du pool, vous devez disposer de "suffisamment" de connexions pour répondre aux exigences de votre application - soit sur un seul serveur, soit via un pool/videur.

"Assez" est un nombre relatif :une application qui établit (et réutilise continuellement) une connexion ne nécessite qu'une seule connexion. Une application qui établit une connexion pour chaque utilisateur final qui se connecte nécessite autant de connexions à la base de données qu'elle a d'utilisateurs.

Les valeurs par défaut pour Postgres et pgbouncer sont sensibles en tant que valeurs par défaut :

  • 100 connexions à la base de données, c'est beaucoup pour la personne typique qui lance Postgres dans un environnement.
    Les développeurs n'auront probablement pas besoin de plus de 10. N'importe qui d'autre en saura assez pour augmenter le nombre.

  • 20 connexions sur pgbouncer par pool de bases de données signifie que vous pouvez obtenir 4 pools pointant vers un serveur et ne pas dépasser la limite de connexion Postgres par défaut.
    Il est possible d'avoir plusieurs ressources mises en commun dans pgbouncer pointant vers une base de données principale et vous voulez toujours des connexions disponibles sur vos serveurs principaux.

Si les valeurs par défaut ne conviennent pas à votre environnement, vous devez les modifier.

N'oubliez pas que les connexions groupées ne signifient pas "toujours lier toutes les connexions de base de données disponibles".
Le point de pgbouncer comme vous l'avez noté est de réutiliser Connexions. Le gain d'efficacité ici ne nécessite pas que vous bloquiez toutes les connexions disponibles, simplement que vous ne vous déconnectiez pas, ne vous reconnectiez pas, ne renégociez pas SSL, ne vous authentifiez pas à nouveau auprès de la base de données et ne réexécutez pas vos requêtes de configuration de connexion à chaque fois.


Linux
  1. Comment rechercher des fichiers par taille et extension ?

  2. Comment configurer des connexions distantes et sécurisées pour MySQL sur Ubuntu 16.04

  3. Comment sauvegarder et restaurer une base de données dans PostgreSQL

  4. Comment surveiller les valeurs cwnd et ssthresh pour une connexion TCP ?

  5. Comment définir shmall, shmmax, shmmin, etc ... en général et pour postgresql

Comment sauvegarder et restaurer une carte SD pour Raspberry Pi

Comment installer et utiliser XRDP sur Ubuntu pour une connexion au bureau à distance

Comment ajouter Icinga Director pour Icinga2 et Icinga Web 2.

Comment installer la base de données PostgreSQL et pgAdmin sous Linux

Comment démarrer et installer Wine pour Ubuntu

Comment installer et configurer le sous-système Windows pour Linux