Précédent   Forum du club des développeurs et IT Pro > Bases de données > PostgreSQL > Administration
Administration Forum d'entraide sur l'administration de PostgreSQL : utilisateurs, privilèges, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 21/06/2012, 12h25   #1
vince29
Membre habitué
 
Homme Vincent Leboulanger
Développeur informatique
Inscription : janvier 2005
Messages : 420
Détails du profil
Informations personnelles :
Nom : Homme Vincent Leboulanger
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2005
Messages : 420
Points : 112
Points : 112
Par défaut Aide pour configuration

Bonjour,

Voilà, nous sommes en cours de développement de web services java avec une base de données POSTGRESQL.

pour info, nous sommes sur un serveur CentOs, et un postgres 8.4.

Au niveau java, nous utilisons SPRING, JDBC et BONECP.

Nous rencontrons un problème d'utilisation mémoire que je n'arrive pas à résoudre. Lorsque j'appelle un web service, les process postgres sur le serveur s'accumule, donc au bout d'un certain nombre de requête, le serveur sature.

Voici la liste des process :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
postgres  3798  2.1  0.1 207832  6140 ?        S    12:22   0:00 /usr/bin/postmaster -p 5432 -D /var/lib/pgsql/DATA
postgres  3996  0.0  0.0 179244  1400 ?        Ss   12:22   0:00 postgres: logger process                          
postgres  3999  0.0  0.0 207832  1664 ?        Ss   12:22   0:00 postgres: writer process                          
postgres  4000  0.0  0.0 207832  1592 ?        Ss   12:22   0:00 postgres: wal writer process                      
postgres  4001  0.0  0.0 207972  1984 ?        Ss   12:22   0:00 postgres: autovacuum launcher process             
postgres  4002  0.0  0.0 179376  1640 ?        Ss   12:22   0:00 postgres: stats collector process                 
postgres  5584  0.0  0.1 209144  5116 ?        Ss   12:23   0:00 postgres: pguser projet 127.0.0.1(35375) idle     
postgres  5585  0.0  0.1 209052  4420 ?        Ss   12:23   0:00 postgres: pguser projet 127.0.0.1(35376) idle     
postgres  5586  0.0  0.0 208916  3360 ?        Ss   12:23   0:00 postgres: pguser projet 127.0.0.1(35377) idle     
postgres  5588  0.0  0.0 208916  3356 ?        Ss   12:23   0:00 postgres: pguser projet 127.0.0.1(35378) idle     
postgres  5589  0.0  0.0 208916  3352 ?        Ss   12:23   0:00 postgres: pguser projet 127.0.0.1(35379) idle     
postgres  5592  0.0  0.0 208916  3360 ?        Ss   12:23   0:00 postgres: pguser projet 127.0.0.1(35380) idle     
postgres  5593  0.0  0.0 208924  3368 ?        Ss   12:23   0:00 postgres: pguser projet 127.0.0.1(35381) idle     
postgres  5594  0.0  0.0 208924  3356 ?        Ss   12:23   0:00 postgres: pguser projet 127.0.0.1(35382) idle     
postgres  5595  0.0  0.0 208924  3356 ?        Ss   12:23   0:00 postgres: pguser projet 127.0.0.1(35383) idle     
postgres  5596  0.0  0.0 208924  3364 ?        Ss   12:23   0:00 postgres: pguser projet 127.0.0.1(35384) idle
et après lancement d'une nouvelle requête :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
postgres  3798  0.8  0.1 207832  6140 ?        S    12:22   0:00 /usr/bin/postmaster -p 5432 -D /var/lib/pgsql/DATA
postgres  3996  0.0  0.0 179244  1400 ?        Ss   12:22   0:00 postgres: logger process                          
postgres  3999  0.0  0.0 207832  1728 ?        Ss   12:22   0:00 postgres: writer process                          
postgres  4000  0.0  0.0 207832  1592 ?        Ss   12:22   0:00 postgres: wal writer process                      
postgres  4001  0.0  0.0 207972  1984 ?        Ss   12:22   0:00 postgres: autovacuum launcher process             
postgres  4002  0.0  0.0 179376  1640 ?        Ss   12:22   0:00 postgres: stats collector process                 
postgres  5584  0.0  0.1 209144  5116 ?        Ss   12:23   0:00 postgres: pguser projet 127.0.0.1(35375) idle     
postgres  5585  0.0  0.1 209052  4420 ?        Ss   12:23   0:00 postgres: pguser projet 127.0.0.1(35376) idle     
postgres  5586  0.0  0.0 208916  3360 ?        Ss   12:23   0:00 postgres: pguser projet 127.0.0.1(35377) idle     
postgres  5588  0.0  0.0 208916  3356 ?        Ss   12:23   0:00 postgres: pguser projet 127.0.0.1(35378) idle     
postgres  5589  0.0  0.0 208916  3352 ?        Ss   12:23   0:00 postgres: pguser projet 127.0.0.1(35379) idle     
postgres  5592  0.0  0.0 208916  3360 ?        Ss   12:23   0:00 postgres: pguser projet 127.0.0.1(35380) idle     
postgres  5593  0.0  0.0 208924  3368 ?        Ss   12:23   0:00 postgres: pguser projet 127.0.0.1(35381) idle     
postgres  5594  0.0  0.0 208924  3356 ?        Ss   12:23   0:00 postgres: pguser projet 127.0.0.1(35382) idle     
postgres  5595  0.0  0.0 208924  3356 ?        Ss   12:23   0:00 postgres: pguser projet 127.0.0.1(35383) idle     
postgres  5596  0.0  0.0 208924  3364 ?        Ss   12:23   0:00 postgres: pguser projet 127.0.0.1(35384) idle     
postgres  5982  0.0  0.1 209068  5180 ?        Ss   12:23   0:00 postgres: pguser postgres 109.0.63.65(41187) idle 
postgres  7560  0.0  0.1 209144  5040 ?        Ss   12:23   0:00 postgres: pguser projet 127.0.0.1(38341) idle     
postgres  7562  0.0  0.1 209052  4428 ?        Ss   12:23   0:00 postgres: pguser projet 127.0.0.1(38342) idle     
postgres  7563  0.0  0.0 208916  3368 ?        Ss   12:23   0:00 postgres: pguser projet 127.0.0.1(38343) idle     
postgres  7564  0.0  0.0 208916  3372 ?        Ss   12:23   0:00 postgres: pguser projet 127.0.0.1(38344) idle     
postgres  7565  0.0  0.0 208916  3368 ?        Ss   12:23   0:00 postgres: pguser projet 127.0.0.1(38345) idle     
postgres  7568  0.0  0.0 208924  3360 ?        Ss   12:23   0:00 postgres: pguser projet 127.0.0.1(38346) idle     
postgres  7569  0.0  0.0 208924  3368 ?        Ss   12:23   0:00 postgres: pguser projet 127.0.0.1(38347) idle     
postgres  7572  0.0  0.0 208924  3376 ?        Ss   12:23   0:00 postgres: pguser projet 127.0.0.1(38348) idle     
postgres  7573  0.0  0.0 208928  3372 ?        Ss   12:23   0:00 postgres: pguser projet 127.0.0.1(38349) idle     
postgres  7575  0.0  0.0 208928  3376 ?        Ss   12:23   0:00 postgres: pguser projet 127.0.0.1(38350) idle
Est-ce un problème de configuration Postgres ?

D'avance merci.

Vince
vince29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2012, 13h33   #2
punkoff
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 2 154
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 2 154
Points : 3 486
Points : 3 486
Bonjour,

A combien est votre paramètre max_connexion ?

(Et sinon votre pooler de connexion ne fait pas réutiliser ces connexions à d'autre process ?)
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2012, 13h35   #3
vince29
Membre habitué
 
Homme Vincent Leboulanger
Développeur informatique
Inscription : janvier 2005
Messages : 420
Détails du profil
Informations personnelles :
Nom : Homme Vincent Leboulanger
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2005
Messages : 420
Points : 112
Points : 112
le nombre de connexions maximum est à 100, il s'agit du paramétrage par défaut

Si mes 100 connexions sont lancées, si j'appelle de nouveau mon web service, j'obtiens l'erreur "Trop de clients déjà connecté".

Comment faire pour éviter que ces process restent actifs trop longtemps ?

merci
vince29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2012, 13h47   #4
punkoff
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 2 154
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 2 154
Points : 3 486
Points : 3 486
La c'est plutot un probleme avec votre serveur d'application / pooler et pas vraiment postgresql.

Si vos process côté pgsql ne sont pas tuer c'est que votre application les maintient actif
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2012, 14h12   #5
vince29
Membre habitué
 
Homme Vincent Leboulanger
Développeur informatique
Inscription : janvier 2005
Messages : 420
Détails du profil
Informations personnelles :
Nom : Homme Vincent Leboulanger
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2005
Messages : 420
Points : 112
Points : 112
ok, donc je dois le gérer au niveau BONECP ?

mon paramétrage actuel

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
<bean id="dataSource" class="com.jolbox.bonecp.BoneCPDataSource" destroy-method="close">
        <property name="driverClass" value="${jdbc.driverClass}"/>
        <property name="jdbcUrl" value="${jdbc.url}"/>
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
        <property name="idleConnectionTestPeriodInMinutes" value="240"/>
        <property name="idleMaxAgeInSeconds" value="60"/>
        <property name="maxConnectionsPerPartition" value="20"/>
        <property name="minConnectionsPerPartition" value="5"/>
        <property name="partitionCount" value="1"/>
        <property name="acquireIncrement" value="5"/>
 
    </bean>
Vincent
vince29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2012, 14h29   #6
punkoff
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 2 154
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 2 154
Points : 3 486
Points : 3 486
j'y connais rien en boneCp par contre y a une doc : http://jolbox.com/index.html?page=ht...iguration.html

D'apres votre config, vous ne devriez pas dépasser les 20 connexions si j'ai bien lu la doc.

Vous arrivez a plus de 100 vu que pgsql gueule un moment donné.

Je vous laisse chercher sur les forums appropriés
+
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2012, 14h30   #7
vince29
Membre habitué
 
Homme Vincent Leboulanger
Développeur informatique
Inscription : janvier 2005
Messages : 420
Détails du profil
Informations personnelles :
Nom : Homme Vincent Leboulanger
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2005
Messages : 420
Points : 112
Points : 112
merci de vos réponses, je clos ce post
vince29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 05h22.


 
 
 
 
Partenaires

Hébergement Web