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 17/07/2012 10:15:23

F.Chanson
Membre

TopmemoryContext

Bonjour, ma base en production fait un  "out of memory"

[xsid-postgres]   TopMemoryContext: 241512 total in 29 blocks; 50264 free (359 chunks); 191248 used
.....
[xsid-postgres]   CacheMemoryContext: 2240560 total in 22 blocks; 1023648 free (3 chunks); 1216912 used

[xsid-postgres]   MdSmgr: 8192 total in 1 blocks; 1528 free (0 chunks); 6664 used
[xsid-postgres]   LOCALLOCK hash: 57344 total in 3 blocks; 27328 free (8 chunks); 30016 used
[xsid-postgres]   Timezones: 78520 total in 2 blocks; 5968 free (0 chunks); 72552 used
[xsid-postgres]   ErrorContext: 16384 total in 2 blocks; 16352 free (11 chunks); 32 used

[xsid-postgres] BASE:BDEXPL  DATE:2012-06-12 14:48:57 GMT SESSION:4fd749ea.388a LIGNE:13 TRANSACTION:0 ERROR:  out of memory
[xsid-postgres] BASE:BDEXPL  DATE:2012-06-12 14:48:57 GMT SESSION:4fd749ea.388a LIGNE:14 TRANSACTION:0 DETAIL:  Failed on request of size 348.

Avez-vous la signification des différentes lignes ci-dessus afin que je comprenne l'origine du pb

Merci d'avance

Hors ligne

#2 17/07/2012 10:54:18

gleu
Administrateur

Re : TopmemoryContext

Les lignes que vous donnez précisent l'utilisation de la mémoire dans PostgreSQL. Difficile d'en dire plus sans avoir les traces complètes. De plus, vous devez avoir dans les traces la requête qui a généré cet affichage.


Guillaume.

Hors ligne

#3 17/07/2012 11:48:49

F.Chanson
Membre

Re : TopmemoryContext

re-bonjour

ou puis-je trouver la signification  (doc ?) précise des informations affichées dans ce log postgres  afin de vérifier  si il y a adéquation entre le fichier pg_sql.conf, la paramétrage du serveur qui héberge postgres et les traces affichées


[xsid-postgres]   CacheMemoryContext: 2240560 total in 22 blocks; 1023648 free (3 chunks); 1216912 used
[xsid-postgres]   MdSmgr: 8192 total in 1 blocks; 1528 free (0 chunks); 6664 used
[xsid-postgres]   LOCALLOCK hash: 57344 total in 3 blocks; 27328 free (8 chunks); 30016 used
[xsid-postgres]   Timezones: 78520 total in 2 blocks; 5968 free (0 chunks); 72552 used
[xsid-postgres]   ErrorContext: 16384 total in 2 blocks; 16352 free (11 chunks); 32 used


pour  infos,
le paramétrage postgres est celui-ci et il y au max 30 clients en // (paramétrage de la queue du serveur Jboss/hibernate)
work_mem = 80MB
maintenance_work_mem  = 128MB
shared_buffers = 2GB       
wal_buffers=4MB
effective_cache_size = 3GB

et la machine à 4 gigas de Ram (machine virtuelle vmware Linux redhat 32 bits)

Dernière modification par F.Chanson (17/07/2012 11:55:04)

Hors ligne

#4 17/07/2012 15:01:58

gleu
Administrateur

Re : TopmemoryContext

Pour répondre directement à votre question, la documentation ne fournit pas d'informations sur ces traces. Ces traces ne sont pas forcément directement liées à la configuration de la mémoire. Par exemple, la ligne Timezones vous indique la quantité de mémoire utilisée pour les fuseaux horaires. Vous n'avez aucun paramètre qui vous permet de la configurer. De même pour un certain nombre des lignes ici.

Attention à ne pas configurer work_mem trop haut, ça pourrait générer du swap. Avec un shared_buffers à 2 Go, un work_mem à 80 Mo, et un max_connections à certainement plus que 30, vous risquez de vous trouver avec des demandes de mémoire de plus de 4,4 Go (2 Go + 80 Mo * 30), soit plus que la mémoire physique (et plus que ce que peut fournir un Linux 32 bits). De plus, votre effective_cache_size est trop haut (3 Go alors que vous prenez déjà 2 Go rien que pour shared_buffers). Bref, votre configuration mémoire est améliorable (même si cela ne corrigera pas le problème que vous indiquez avec les traces).


Guillaume.

Hors ligne

Pied de page des forums