PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment augmenter le nombre maximum de connexions dans postgres ?

Augmenter simplement max_connections est une mauvaise idée. Vous devez augmenter shared_buffers et kernel.shmmax aussi.

Considérations

max_connections détermine le nombre maximal de connexions simultanées au serveur de base de données. La valeur par défaut est généralement de 100 connexions.

Avant d'augmenter votre nombre de connexions, vous devrez peut-être augmenter votre déploiement. Mais avant cela, vous devez vous demander si vous avez vraiment besoin d'une limite de connexion accrue.

Chaque connexion PostgreSQL consomme de la RAM pour gérer la connexion ou le client qui l'utilise. Plus vous avez de connexions, plus vous utiliserez de RAM qui pourrait être utilisée pour exécuter la base de données.

Une application bien écrite n'a généralement pas besoin d'un grand nombre de connexions. Si vous avez une application qui nécessite un grand nombre de connexions, envisagez d'utiliser un outil tel que pg_bouncer qui peut regrouper les connexions pour vous. Comme chaque connexion consomme de la RAM, vous devriez chercher à minimiser leur utilisation.

Comment augmenter le nombre maximum de connexions

1. Augmenter max_connection et shared_buffers

dans /var/lib/pgsql/{version_number}/data/postgresql.conf

changer

max_connections = 100
shared_buffers = 24MB

à

max_connections = 300
shared_buffers = 80MB

Les shared_buffers paramètre de configuration détermine la quantité de mémoire est dédié à PostgreSQL à utiliser pour la mise en cache des données .

  • Si vous avez un système avec 1 Go ou plus de RAM, une valeur de départ raisonnable pour les buffers_partagés est 1/4 de la mémoire de votre système.
  • il est peu probable que vous trouviez que l'utilisation de plus de 40 % de RAM fonctionne mieux qu'une plus petite quantité (comme 25 %)
  • Sachez que si votre système ou votre version de PostgreSQL est 32 bits, il peut ne pas être pratique de définir des buffers_partagés au-dessus de 2 à 2,5 Go.
  • Notez que sous Windows, les grandes valeurs pour les buffers_partagés ne sont pas aussi efficaces, et vous pouvez trouver de meilleurs résultats en les maintenant relativement bas et en utilisant davantage le cache du système d'exploitation à la place. Sous Windows, la plage utile est de 64 Mo à 512 Mo .

2. Modifier kernel.shmmax

Vous auriez besoin d'augmenter la taille maximale du segment du noyau pour qu'elle soit légèrement plus grande que les shared_buffers .

Dans le fichier /etc/sysctl.conf réglez le paramètre comme indiqué ci-dessous. Il prendra effet lorsque postgresql redémarre (la ligne suivante rend le noyau max à 96Mb )

kernel.shmmax=100663296

Références

Connexions Postgres Max et tampons partagés

Réglage de votre serveur PostgreSQL