PostgreSQL : Optimisation SHMMAX et SHMALL en un clin d'oeil sur Debian

La configuration de PostgreSQL par défaut étant un peu légère, il est recommandé d'ajuster la valeur de SHMMAX et SHMALL en fonction de votre installation (le paramètre le plus important est , selon la doc officielle , le paramètre SHMMAX).

  • SHMMAX : Maximum size of shared memory segment (bytes)
  • SHMALL : Total amount of shared memory available (bytes or pages)

Le problème, vous trouverez une multitude d'articles vous expliquant comment calculer les valeurs de ces paramètres, mais à voir le nombre de réponses différentes, il semblerait que ce ne soit pas si facile que cela. Le calcul se fait en fonction de la quantité de mémoire (RAM)

Voici donc une astuce pour déterminer la valeur de SHMMAX et SHMALL en fonction de votre machine afin d'optimiser les performances de PostgreSQL.

En root (ou sudo), créez un fichier pg_memory.sh puis collez le code ci-dessous :

Enregistrez-le, puis exécutez la commande suivante :

La sortie de la commande devrait être de ce type :

Comme indiqué ci-dessus, éditez le fichier /etc/sysctl.conf et ajoutez les deux lignes suivantes avec les valeurs affichées dans la sortie de la commande (afin que les paramètres soient préservés au démarrage)

Appliquez les changements en entrant la commande suivante :

Redémarrez ensuite PostgreSQL