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 22/03/2011 09:34:29

JLD68
Membre

Pgstat

Bonjour,

j'ai la configuration suivante Postgresql 9.0 sur Centos 5.5.
Lorsque je veux interroger les statistiques j'ai le message suivant
ATTENTION : pgstat wait timeout

j'ai trouver quelques info sur le sujet mais pas de piste ou axe de recherche
Si quelqu'un a déjà rencontré ce problème merci d'avance de votre aide

A+

Hors ligne

#2 22/03/2011 11:11:13

Marc Cousin
Membre

Re : Pgstat

Habituellement, ça veut dire qu'il n'a pas réussi à écrire le fichier de statistiques dans le temps imparti. Ça peut avoir plusieurs causes :
- Énormément d'objets (et donc un gros fichier de stats)
- Des disques très chargés (et donc du mal à écrire les fichiers)
Ou les deux en même temps évidemment smile

Quelle taille fait votre fichier pgstat.stat (habituellement dans pg_stat_tmp)


Marc.

Hors ligne

#3 22/03/2011 11:19:59

JLD68
Membre

Re : Pgstat

Merci pour ta réponse rapide, je viens de vérifier mon fichier est  dans Global et non dans pg_stat_tmp je sais pas si cela a de l'importance et sa taille n'est pas enorme 8 Mo

Hors ligne

#4 22/03/2011 11:26:49

Marc Cousin
Membre

Re : Pgstat

8Mo ce n'est pas énorme, mais c'est déjà conséquent. Ça dépend vraiment des disques en dessous… mais il faudrait qu'ils soient vraiment saturés pour que ça se produise.

- Ça se produit en permanence ou seulement ponctuellement ?
- Est-ce que le processus «postgres: stats collector process» est actif ?


Marc.

Hors ligne

#5 22/03/2011 11:56:26

gleu
Administrateur

Re : Pgstat

Il faudrait vérifier la valeur du paramètre stats_temp_directory. Par défaut, il vaut pg_stat_tmp. Si pgstat.stat n'est pas dans ce répertoire (ou dans celui visé par le paramètre stats_temp_directory), c'est que PostgreSQL n'arrive pas à le copier dans ce répertoire et du coup le collecteur de stats ne l'y trouve pas.

Je pense vraiment qu'il faut creuser dans cette direction.


Guillaume.

Hors ligne

#6 22/03/2011 12:34:47

JLD68
Membre

Re : Pgstat

Oui j'ai regardé le fichier postgres.conf, j'ai décommenté la ligne stats_temp_directory qui est egale à pg_stat_tmp les autres paramètres actifs sont
track_activities=on
track_counts=on
track_functions=all (pl au départ)

mais j'ai toujours pasde fichier dans le repertoire indiqué

pour répondre à Marc le phénomène est en permanence
Quand au process je pense que c'est lié à track_activities (désolé je suis débutant) j'ai utilisé la fonction top et aussi ps avec un grep sur postgres mais j'ai rien vue

Hors ligne

#7 22/03/2011 12:38:44

Marc Cousin
Membre

Re : Pgstat

Après avoir décommenté la ligne, avez vous demandé à PostgreSQL de recharger la configuration ?
PostgreSQL a t'il les droits en écriture sur ce répertoire ?

Pour le nom du processus, essayez «ps -ef | grep postgres»


Marc.

Hors ligne

#8 22/03/2011 12:45:00

gleu
Administrateur

Re : Pgstat

Est-ce que le répertoire pg_stat_tmp existe ? est que l'utilisateur postgres a droit de créer un fichier dans ce répertoire ? que se passe-t-il si vous copiez vous-même le fichier du répertoire global vers le répertoire pg_stat_temp ? (j'ai bien dit copier et non pas déplacer)


Guillaume.

Hors ligne

#9 22/03/2011 12:47:43

JLD68
Membre

Re : Pgstat

Oui j'ai bien fait un restart du demon posgres
ci dessous le retour de la commande que tu m'as donné je vois pas le process en question
(j'ai masqué les nom de user et @ip par des xxxxx)
[root@DIN04009 data]# ps -ef |grep postgres
postgres  1419     1  0 10:44 ?        00:00:00 /usr/pgsql-9.0/bin/postmaster -p 5432 -D /var/lib/pgsql/9.0/data
postgres  1421  1419  0 10:44 ?        00:00:00 postgres: logger process
postgres  1423  1419  0 10:44 ?        00:00:00 postgres: writer process
postgres  1424  1419  0 10:44 ?        00:00:00 postgres: wal writer process
postgres  1425  1419  0 10:44 ?        00:00:09 postgres: xxxxxx(4240) idle
postgres  1430  1419  2 10:44 ?        00:01:14 postgres: xxxxx(3738) idle
postgres  1431  1419  1 10:44 ?        00:00:54 postgres: xxxxx(3739) idle
postgres  1432  1419  0 10:44 ?        00:00:02 postgres: xxxx(3825) idle
postgres  1433  1419  0 10:44 ?        00:00:31 postgres: xxxx(4050) idle
postgres  1437  1419  0 10:44 ?        00:00:02 postgres: xxxx(4335) idle
postgres  1438  1419  0 10:44 ?        00:00:13 postgres: xxxx(1318) idle
postgres  1439  1419  0 10:45 ?        00:00:23 postgres: xxxx(4978) idle
postgres  1440  1419  0 10:45 ?        00:00:01 postgres: xxxx(3076) idle
postgres  1452  1419  0 10:47 ?        00:00:00 postgres: xxxx(4938) idle
postgres  1462  1419  0 10:49 ?        00:00:01 postgres: xxxx(3388) idle
postgres  1471  1419  0 10:52 ?        00:00:02 postgres: xxxx(2337) idle
postgres  1477  1419  0 10:53 ?        00:00:01 postgres: xxxx(1911) idle
postgres  1547  1419  0 11:06 ?        00:00:00 postgres: xxxx(3925) idle
postgres  1548  1419  0 11:06 ?        00:00:01 postgres: xxxx(3926) idle
postgres  1552  1419  0 11:08 ?        00:00:00 postgres: xxxx(3934) idle
postgres  1579  1419  0 11:22 ?        00:00:00 postgres: xxxx(1374) idle
postgres  1580  1419  0 11:22 ?        00:00:00 postgres: xxxx(1375) idle
postgres  1590  1419  0 11:24 ?        00:00:00 postgres: xxxx(4048) idle
postgres  1591  1419  0 11:24 ?        00:00:00 postgres: xxxx(4809) idle
postgres  1614  1419  0 11:34 ?        00:00:00 postgres: xxxx(2777) idle
postgres  1617  1419  0 11:36 ?        00:00:00 postgres: xxxx(1425) idle
postgres  1618  1419  0 11:36 ?        00:00:00 postgres: xxxx(1426) idle
postgres  1619  1419  0 11:36 ?        00:00:00 postgres: xxxx(3625) idle
postgres  1620  1419  0 11:36 ?        00:00:00 postgres: xxxx(3626) idle
postgres  1624  1419  0 11:37 ?        00:00:00 postgres: xxxx(3635) idle
postgres  1625  1419  0 11:37 ?        00:00:00 postgres: xxxx(1429) idle
postgres  1634  1419  0 11:41 ?        00:00:00 postgres: xxxx(2810) idle
postgres  1635  1419  0 11:41 ?        00:00:00 postgres: xxxx(2811) idle
postgres  1636  1419  0 11:41 ?        00:00:00 postgres: xxxx(2812) idle
root      1648  1233  0 11:43 pts/0    00:00:00 grep postgres
[root@DIN04009 data]#

Hors ligne

#10 22/03/2011 12:49:20

Marc Cousin
Membre

Re : Pgstat

Il n'y a pas de collecteur de statistiques. Il a du s'arrêter en erreur. Il devrait y avoir un message d'insulte dans la log, expliquant pourquoi il a refusé de démarrer.


Marc.

Hors ligne

#11 22/03/2011 12:55:03

gleu
Administrateur

Re : Pgstat

J'ai essayé de simuler ça en changeant le répertoire pg_stat_tmp par un fichier pg_stat_tmp (je sais, je suis méchant smile ). J'ai eu un stat timeout et plein d'autres messages du style :

WARNING:  could not open statistics file "pg_stat_tmp/pgstat.stat": Not a directory
LOG:  could not open temporary statistics file "pg_stat_tmp/pgstat.tmp": Not a directory
WARNING:  could not open statistics file "pg_stat_tmp/pgstat.stat": Not a directory
LOG:  could not open temporary statistics file "pg_stat_tmp/pgstat.tmp": Not a directory
WARNING:  pgstat wait timeout
WARNING:  could not open statistics file "pg_stat_tmp/pgstat.stat": Not a directory
LOG:  could not open temporary statistics file "pg_stat_tmp/pgstat.tmp": Not a directory
LOG:  could not open temporary statistics file "pg_stat_tmp/pgstat.tmp": Not a directory


À noter que, pour moi, le stat collector est démarré. Un autre problème pourrait être que le port UDP est bloqué pour une raison ou une autre.


Guillaume.

Hors ligne

#12 22/03/2011 13:12:34

JLD68
Membre

Re : Pgstat

Je viens de regarder le log suite au redémarrage est j'ai une lignes suivantes je creuse et je vous informe dés que j'ai trouvé
2011-03-22 10:44:43 CETLOG:  n'a pas pu résoudre « localhost » : Nom ou service inconnu   
2011-03-22 10:44:43 CETLOG:  désactivation du récupérateur de statistiques à cause du manque de socket   
    fonctionnel   
2011-03-22 10:44:43 CETATTENTION:  autovacuum non exécuté à cause d'une mauvaise configuration

Hors ligne

#13 22/03/2011 13:13:52

Marc Cousin
Membre

Re : Pgstat

Le listen_adresses vaut localhost dans le fichier de configuration ? Si c'est le cas, on dirait que localhost n'est pas défini dans le /etc/hosts… ce qui est étrange, et certainement pas par défaut smile


Marc.

Hors ligne

#14 22/03/2011 13:28:46

JLD68
Membre

Re : Pgstat

comme je l'ai écrit je suis débutant, j'avais modifier le fichier hosts pour référencé mon serveur @ip nom machine
J'avais supprimer la ligne localhost pointant sur 127.0.0.1 je viens de la rajouter

redémarrage du démon postgres plus d'erreur dans les logs les process stat collector et autovacuum sont présents
ma requette de stat me donne un résultat 

Un grand merci à tous les 2 pour votre aide et patience

A+ pour de nouvelles question

Je sais pas comment mettre résolu sur le forum

Hors ligne

#15 22/03/2011 13:31:38

gleu
Administrateur

Re : Pgstat

Généralement, on ne met pas de tag résolu. Faudrait que je regarde si c'est possible à configurer...


Guillaume.

Hors ligne

Pied de page des forums