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
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 .
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