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 30/07/2009 15:50:03

Blister
Membre

Probleme avec Postgres

Bonjour,

Voilà j'ai installé un serveur postgres sur une petite bécane dédié (mono processeur/celeron 220) avec 1GRAm. Je compte faire un site communautaire et donc avec beaucoup de traitement de données. J'utilise donc cette bécane pour les 1er tests. Aujourd'hui je me suis amusé a faire beaucoup d'actualisation de la page avec dessus 4 pauvres requêtes sql. Et j'ai remarqué que rien qu'en faisait ça la becane crashé. elle ne gérer plus du tout avec le processeur utilisé à 100% lorsque quand je fais la même chose avec mysql je ne suis qu'a 20%. Je me demande donc si ya pas une configuration minimum pour avoir un serveur postgres. Car si j'imite l'utilisateur malveillant rien quand faisant des actualisations il pourrais faire un DoS ce qui est assez embêtant. j'aimerais savoir si il y avais des solutions a mon problème. ou si Postgresql et tous simplement pas adapter ... a terme je prévois des tables avec quelque milions de ligne dedans

Merci de votre aide.

Bonne journée

Hors ligne

#2 30/07/2009 16:08:47

Marc Cousin
Membre

Re : Probleme avec Postgres

Crashait ? Comment avez vous diagnostiqué que le processeur était utilisé à 100% dans ce cas ?
S'il s'agit d'une exécution de requête en boucle, il est tout à fait normal d'avoir une utilisation à 100% du cpu, cela veut simplement dire que postgres utilise toutes les ressources de la machine…


Marc.

Hors ligne

#3 30/07/2009 16:12:15

gleu
Administrateur

Re : Probleme avec Postgres

Vous entendez quoi par « la machine a crashé » ?

Enfin bon, sans plus d'infos, on ne peut pas dire grand chose en dehors que PostgreSQL n'est certainement pas la cause du crash (si crash il y a eu). Il ne faut évidemment pas s'attendre à des milliers de requêtes par seconde sur une telle machine, mais un crash, ça, non.


Guillaume.

Hors ligne

#4 30/07/2009 16:17:43

Blister
Membre

Re : Probleme avec Postgres

simple j'ouvre la page web puis j'ouvre un putty avec un htop a coté et je fait plein de F5 avec le doigt sur la page web et sur un page avec juste une seul requete sur la page le processeur monte a 100% et quand je dit qu'il crash c'est que pendant 5-10 min il ne répond plus du tous
et quand je fais la même chose sur une page sans requetes le processeur ne monte qu'a 10-15% donc je ne comprend pas du tous

Hors ligne

#5 30/07/2009 16:48:38

gleu
Administrateur

Re : Probleme avec Postgres

J'ai bien une hypothèse. Vous ouvrez la page web. Cela exécute le script. Une connexion est lancée sur le serveur PostgreSQL. Vous faites F5, cela recharge la page et ouvre une nouvelle connexion. Etc. Bref, vous passez votre temps à créer des processus, ouvrir des connexions, exécuter des requêtes. Évidemment, faire F5 très rapidement fait que le script est interrompu mais à coup sûr la connexion à la base ne l'est pas. Donc, oui, le serveur a du boulot à faire. Tout dépend évidemment du nombre de rechargement.


Guillaume.

Hors ligne

#6 30/07/2009 16:52:58

Blister
Membre

Re : Probleme avec Postgres

Pourtant j'ai créer un class qui gere els connection et qui fait un connect et un close a chaque query donc normalement ça devrais coupé la connexion à la base.

Hors ligne

#7 30/07/2009 17:25:06

gleu
Administrateur

Re : Probleme avec Postgres

J'en suis pas sur du tout, mais c'est facile à vérifier avec les logs PostgreSQL. Il faut chercher le message « unexpected EOF on client connection ».


Guillaume.

Hors ligne

#8 30/07/2009 23:49:52

Blister
Membre

Re : Probleme avec Postgres

Bon excusez moi du retard quelque petit empéchement donc j'ai regarder dans les var/log de postgres et non j'ai pas de unexpected EOF on client connections c'est donc bien au niveau de charge que prend une requête peut être le serveur est-il tous simplement pas assez puissant pour gêrer de simple requêtes postgres ...

Hors ligne

#9 02/08/2009 00:44:23

buggy
Membre

Re : Probleme avec Postgres

Bonsoir,

Si le log fonctionne malgré tout, l'instruction 'log_min_duration_statement' pourrait s'avérer utile. Voir aussi 'log_statement' et 'log_duration'.
http://docs.postgresqlfr.org/8.3/runtim … -statement
À placer dans le fichier postgresql.conf, recharger PostgreSQL et surveiller le fichier de log (attention, des données confidentielles peuvent apparaître :)

Un freeze machine avec peu d'effort me fait souvent penser à un problème de disque dur. Celeron 220 ? Est-ce qu'il s'agirait d'un portable avec un SSD bas de gamme ?

Par ailleurs, merci d'avoir mentionné 'htop'. Je ne connaissais pas et ça a l'air très sympa.

Hors ligne

#10 04/08/2009 17:36:51

Alex7995
Membre

Re : Probleme avec Postgres

buggy a écrit :

Un freeze machine avec peu d'effort me fait souvent penser à un problème de disque dur. Celeron 220 ? Est-ce qu'il s'agirait d'un portable avec un SSD bas de gamme ?

Kimsufi L de OVH, Celeron et 1 Go de ram, sa doit être sa !

buggy a écrit :

Par ailleurs, merci d'avoir mentionné 'htop'. Je ne connaissais pas et ça a l'air très sympa

Oui, htop est un bon programme smile

Hors ligne

#11 06/08/2009 00:23:56

buggy
Membre

Re : Probleme avec Postgres

Alex7995 a écrit :
buggy a écrit :

Un freeze machine avec peu d'effort me fait souvent penser à un problème de disque dur. Celeron 220 ? Est-ce qu'il s'agirait d'un portable avec un SSD bas de gamme ?

Kimsufi L de OVH, Celeron et 1 Go de ram, sa doit être sa !

Hum... Oui, bon. Certes, il paraît qu'on ne dit pas toujours du bien de ce genre d'hébergements d'entrée de gamme mais quand même smile
Un P200 fait tourner un blog modeste sans trop de souci ; le problème doit venir d'ailleurs. Quid des logs ? Et à propos de l'utilisation mémoire, la swap est-elle utilisée ?

Si le site est déjà en production, quelques rustines d'urgences :
- modifier le compte utilisé pour rajouter une condition 'CONNECTION LIMIT' : http://docs.postgresql.fr/8.3/sql-alteruser.html
  Cela évitera que les connexions s'accumulent au dessus de ce que le serveur semble pouvoir supporter.
- si le site est en PHP : http://fr.php.net/manual/en/info.config … ution-time
  (à désactiver pour le debuggage, sinon bonjour les "unexpected EOF on client connection")
 
Ça n'empêchera pas le déni de service mais ça devrait éviter le crash serveur. Voilà pour le bout de scotch wink

Comme dit précédemment, pour tenter de résoudre le problème, il nous faudrait, si possible, plus d'informations : requêtes en cause, schéma, tailles des tables, configurations, ...


PS: éventuellement tester et chiffrer la montée en charge du site. Ab permet de spécifier le nombre de consultations concurrentes : http://httpd.apache.org/docs/2.0/programs/ab.html

Hors ligne

Pied de page des forums