PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 24/10/2019 11:00:38

caius
Membre

out of shared memory

Bonjour,

je rencontre un problème pour paramétrer mon fichier de conf postgres (version 10.6).

j'ai une grosse procédure de transaction qui me déclenche une erreur

ERROR:  out of shared memory
HINT:  You might need to increase max_locks_per_transaction."

j'ai paramétré comme ceci mon fichier postgresql.conf :

shared_buffers = 3GB
dynamic_shared_memory_type = posix
max_wal_size = 1GB
max_locks_per_transaction = 100

comment pusi-je changer ? est-ce que j'ai paramétré les bonnes informations ? en ai-je oublié d'autre ?

il faut savoir que j'ai 3 instances postgres qui sont installées sur le serveur qui possède un disque de 5Go et la mémoire est de 8Go. IL va falloir que les 3 instances soient opérationnelles et partagent tout ceci.

merci pour vos lumières !

Hors ligne

#2 24/10/2019 11:36:43

rjuju
Administrateur

Re : out of shared memory

ERROR:  out of shared memory
HINT:  You might need to increase max_locks_per_transaction."
[...]
max_locks_per_transaction = 100

Ave-vous bien redémarré après avoir changé le max_locks_per_transaction?


Cette erreur est généralement due au fait que vous essayez d'obtenir plus de verrous que possible, sachant que le nombre maximum de verrou qu'il est possible d'avoir à un même moment est max_lock_per_transaction * max_connection.   Si vous avez un grand nombre de tables et/ou que vous avez de nombreuses connexions essayant d'obtenir un grand nombre de verrou, il vous faudra donc augmenter encore plus max_locks_per_transaction.  À vous de le positionner à une valeur suffisamment haute pour vos besoins.

Hors ligne

#3 24/10/2019 11:41:22

caius
Membre

Re : out of shared memory

Bonjour,

merci pour votre réponse !
oui oui j'ai bien redémarré le service à chaque modification.
Existe-t-il une valeur à ne pas dépasser, au regard des autres paramètres ? si j'augmente la valeur du max_locks_per_transaction , dois-je modifier d'autre paramètres ?

je suis un peu perdue dans la doc par rapport à tout ce paramétrage...

Merci

Hors ligne

#4 24/10/2019 11:48:29

rjuju
Administrateur

Re : out of shared memory

Non, changer uniquement ce paramètre devrait régler votre problème.  Bien évidemment, si vous modifiez max_connections, il faut modifier max_lock_per_transactions en conséquence.


Il n'y a pas de valeur à ne pas dépasser, cela influera uniquement sur un espace mémoire réservé au démarrage de postgres et qui sera conservé indéfiniment.  Il est donc peu souhaitable d'allouer un espace beaucoup trop gros pour vos besoin.

Hors ligne

Pied de page des forums