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 à la place ê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
etshared_buffers
dans /var/lib/pgsql/{version_number}/data/postgresql.conf
changement
max_connections = 100
shared_buffers = 24MB
à
max_connections = 300
shared_buffers = 80MB
Le shared_buffers
paramètre de configuration détermine la quantité de mémoire est dédiée à 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 shared_buffers est 1/4 de la mémoire de votre système.
- il est peu probable que vous utilisiez plus de 40% de RAM pour fonctionner mieux qu'une petite quantité (comme 25%)
- Sachez que si votre système ou votre version PostgreSQL est 32 bits, il peut ne pas être pratique de définir shared_buffers au-dessus de 2 ~ 2,5 Go.
- Notez que sous Windows, les valeurs élevées pour shared_buffers ne sont pas aussi efficaces, et vous pouvez trouver de meilleurs résultats en le maintenant relativement bas et en utilisant davantage le cache du système d'exploitation. Sous Windows , le plage utile est 64Mo à 512Mo .
2. Changez kernel.shmmax
Vous devrez augmenter la taille maximale du segment du noyau pour qu'elle soit légèrement plus grande
que le shared_buffers
.
Dans le fichier, /etc/sysctl.conf
définissez le paramètre comme indiqué ci-dessous. Cela prendra effet lors du postgresql
redémarrage (la ligne suivante rend le noyau maximum 96Mb
)
kernel.shmmax=100663296
Références
Connexions Postgres Max et tampons partagés
Réglage de votre serveur PostgreSQL