postgresql: out of shared memory

Bonjour,

J’ai quasi quotidiennement le message suivant dans les logs de postgresql:

2015-08-21 16:31:25 UTC WARNING: out of shared memory
2015-08-21 16:31:25 UTC ERROR: out of shared memory
2015-08-21 16:31:25 UTC HINT: You might need to increase max_locks_per_transaction.

J’augmente le max_locks_per_transaction et redémarre le postgresql, mais cela revient inévitablement (actuellement il est à 128).

Pour info, j’ai 18 domaines et 314 utilisateurs dont une vingtaine réellement actif, environ 6000 mails reçus chaque jour.

Version: 3.0.24

Merci

Cdt,
JC

Quelle distribution utilisez-vous ?

Bonjour,

Debian 8.1 (Jessie)

Cdt,
JC

C’est une installation fraîche ou vous avez migré depuis une autre distribution ?

Messieurs bonjour,

ci-dessous mes “marque-ta-page” concernant la configuration d’un PG :

https://www.linux.com/learn/tutorials/394523:configuring-postgresql-for-pretty-good-performance

http://www.postgresql.org/docs/9.0/static/kernel-resources.html

Bon courage,

Pascal

Que vous donne la commande:

# ipcs -a

Quelles sont les caractèristiques de votre machine (est-ce une VM, combien de CPU/RAM…) ?

Combien avez-vous de contacts ?

Bonjour,

Merci PascalS, je consulterai les liens.

Pour Toony:

jch@mail-cluster01:~$ ipcs -a

------ Message Queues --------
key        msqid      owner      perms      used-bytes   messages

------ Shared Memory Segments --------
key        shmid      owner      perms      bytes      nattch     status
0x0052e2c1 0          postgres   600        56         59

------ Semaphore Arrays --------
key        semid      owner      perms      nsems
0x0052e2c1 0          postgres   600        17
0x0052e2c2 32769      postgres   600        17
0x0052e2c3 65538      postgres   600        17
0x0052e2c4 98307      postgres   600        17
0x0052e2c5 131076     postgres   600        17
0x0052e2c6 163845     postgres   600        17
0x0052e2c7 196614     postgres   600        17

Il s’agit d’un serveur physique dédié.
CPU: Atom C2750 (8 CPU)
RAM: 8Go

J’ai intégré OpenDKIM, Spamassassin et Clamav il y a peu, mais le problème se présentait déjà avant.

Nombre de contacts:

bj=# SELECT count(*) FROM contact;
 count
-------
   345
(1 row)

Quelles sont les commandes à taper pour que je vous fournisse le plus d’indicateur au moment où le problème se produit ?

Cdt,
JC

Bonjour,

bis repetita à l’instant. Le résultat de la commande ipcs -a donne la même chose.
Si vous souhaitez que je tape une série de commande ou que je relève certains indicateurs au moment ou le problème se présente, ne pas hésiter. Comme d’habitude, j’ai encore augmenté le max_locks_per_transaction mais ce sera la dernière fois, car je pense que c’est anormal.

Cdt,
JC

De notre côté, nous avons repéré un soucis sur la tâche planifiée QuotaGatheringJob qui pourrait-être à l’origine de ce bloquage.
Le fix sera dans BlueMind 3.0.25 qui doit sortir semaine prochaine - elle entre en phase de test chez nous.

En attendant, un contournement possible est de désactiver cette tâche planifiée - son rôle est de repérer les comptes qui ont saturé leur quota messagerie.