IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration PostgreSQL Discussion :

Parametrer max_fsm_pages sur Postgresql


Sujet :

Administration PostgreSQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    138
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 138
    Par défaut Parametrer max_fsm_pages sur Postgresql
    Bonjour a tous.

    J'ai un petit souci avec mon serveur.
    Je l'explique.
    En fait, j'ai une application WEB qui tourne sur un serveur Windows/Apache, et qui communique avec une BD Ubuntu 8.04 LTS/Postgresql 8.2.
    J'ai environ 200 bases de 90 tables environ de stockees dans PG.
    Jusqu'a peu, je n'avais aucun soucis, mais maintenant, j'ai un petit probleme avec les sauvegardes qui s'effectuent toutes les nuits.
    En effet, j'ai d'abord eu le message suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    VACUUM
    vacuumdb: vacuuming database "xxxxxxx"
    INFO:  le nombre d'emplacements de pages nécessaires (252176) dépasse max_fsm_pages (153600)
    HINT:  Considérez l'augmentation du paramètre de configuration « max_fsm_pages » à une valeur supérieure à 252176.
    Puis depuis peu, celui la :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ATTENTION:  la relation « pg_catalog.pg_largeobject » contient plus de « max_fsm_pages » pages d'espace libre utile
    HINT:  Pensez à compacter cette relation ou à augmenter le paramètre de configuration « max_fsm_pages ».
    Bon, le message est clair, je dois pour regler ces problemes augmenter le parametre max_fsm_pages.
    Mais avant de faire cela, je voudrais savoir dans quelle mesure je peux augmenter ce parametre.

    J'ai fait des recherches a droite a gauche et j'ai trouve les regles de calculs qui disent qu'il faut que 'max_fsm_pages' soit 16 fois superieur au moins a 'max_fsm_relations'. Mais pas quelle valeur on peut mettre selon sa config hardware.

    Mon serveur est un Processeur Intel Xeon 2.4Ghz double coeur, j'ai un DD de 10Go pour le repertoire racine (2.3 utilise), 57Go pour le /home (ou sont stockees les bases) (25 utilise) et 2Go de RAM. Ce serveur est specifiquement dedie a ma BD, donc rien d'autre ne tourne dessus.
    Donc, avec cette config, a combien je peux monter les parametres suivants :
    - max_fsm_relations
    - max_fsm_pages

    De plus, j'ai lu aussi qu'il serait peut etre necessaire d'augmenter :

    shmmax et shmall
    Pour l'instant, j'ai :
    shmmax = 33554432
    shmall = 2097152
    Et apparement pour shmmax, pour un serveur avec 2Go de ram, ils conseillent de mettre 1Go, soit : 1073741824
    Et ils conseillent aussi de passer le shared_buffer (que j'ai pour l'instant a 24Mo), a 1024Mo, en faisant attention de a ce que cette valeur soit inferieure a shmmax (donc peut etre mettre un peut plus a shmmax ou un peu moins a shared_buffer).

    J'ai beaucoup de question, mais etant donne que mon serveur est en production, je ne peux me permettre de faire une erreur qui pourrait le rendre inutilisable.
    Je vous remercie donc par avance pour votre aide.

    jinpol...

  2. #2
    Membre très actif
    Homme Profil pro
    Informaticien
    Inscrit en
    Juin 2004
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Informaticien
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2004
    Messages : 184
    Par défaut
    bonjour

    je pense que vous pouvez augmenter sans souci la valeur de max_fsm_pages à
    26000
    il faut aussi régler max_relation en fonction.

    pour shmmax, on déclare en général la moitie de la ram disponible sur le serveur.
    dans mon cas :
    sur mon serveur (etch+postgresql 8.1) shmmax = 3go

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    138
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 138
    Par défaut
    Bonjour,

    et tout d'abord, merci pour votre aide.
    Par contre, vous mettez 26.000, mais c'est plutot 260.000 que vous vouliez mettre non, etant donne qu'il me faut au moins 252.176 pour max_fsm_pages.

    Et donc si je mets 260.000 pour max_fsm_pages, je dois mettre :

    260.000/16 = 16.250 pour max_fsm_relations ???

    Enfin pour shmmax, vous me conseillez de mettre 1Go, et pour le shared_buffer, est-ce que je peux mettre aussi 1024Mo comme je l'ai lu sur un site avec ma config ?

    Encore merci pour votre aide.
    jinpol...

  4. #4
    Membre très actif
    Homme Profil pro
    Informaticien
    Inscrit en
    Juin 2004
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Informaticien
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2004
    Messages : 184
    Par défaut
    il s'agit effectivement de 260.000

    concernant le paramètre max_relation voici une de mes configs qui se rapproche de la votre.

    max_fsm_pages=320 000
    max_fsm_relation=5 000

    par contre la valeur de shared_buffer me semble exagérée.
    256 voire 128 Mo serait suffisant.

    il ne faut pas oublier de paramétrer effective_cache_size
    voir http://www.postgresql.org/docs/8.2/i...fig-query.html

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    138
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 138
    Par défaut
    Bon, j'ai fait quelques recherches et quelques calculs en m'inspirant de votre aide, et j'arrive au resultat suivant :

    Je dois donc parametrer les valeurs suivantes :

    max_fsm_relations - max_fsm_pages - effective_cache_size - shmmax - shmall

    Apparement, pour 2 Go de RAM, on peut mettre :
    shmmax = 1073741824 soit 1 Go ou encore 1048576 Ko (important pour la suite)

    Pour shmall, meme valeur que pour shmmax.

    pour le shared_buffers, j'ai trouve la formule suivante :
    shmmax = 250Ko + 8.2 Ko * shared_buffers + 14.2 Ko * max_connections
    avec donc shmmax = 1048576 Ko et max_connections = 200
    ce qui donne :
    shared_buffers = 127498 Ko, soit environ 128 Mo

    Ensuite, pour max_fsm_pages, je me base sur ce que vous avez mis, soit :
    max_fsm_pages = 320000

    Et vu que max_fsm_relations doit etre au moins 16 fois inferieur a max_fsm_pages, je vais mettre :
    max_fsm_relations = 16000

    Enfin, pour effective_cache_size, j'ai deux sons de cloche.
    Soit on met 2/3 de la Ram pour un serveur dedié exclusivement a PostgreSQL, donc pour moi qui ait 2 Go de Ram, ca fait 1.3 Go environ, ou bien on tape la commande free, on regarde la memoire qu'il reste en cache, (premiere ligne -> cached) et on met cette valeur pour effective_cache_size, soit dans mon cas environ 800 Mo.

    Donc, petit recapitulatif :

    shmmax = 1073741824
    shmall = 1073741824
    shared_buffers = 128 Mo
    max_fsm_pages = 320000
    max_fsm_relations = 16000
    effective_cache_size = entre 800 Mo et 1,3Go

    Voila, est-ce que cela semble judicieux a votre avis ???
    Je vais tester ces valeurs, voir si je ne rencontre plus de soucis lors des sauvegardes, et si mon Postgres tourne toujours aussi bien, voir mieux si ces parametres sont bons

    Merci pour votre aide.
    jinpol...

  6. #6
    Membre très actif
    Homme Profil pro
    Informaticien
    Inscrit en
    Juin 2004
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Informaticien
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2004
    Messages : 184
    Par défaut
    les paramètres semblent adéquats (même si l'on s'éloigne du problème initial de vacuum )

    à propos du vacuum il est possible de lui affecter des ressources supplémentaires avec maintenance_work_mem.

    De même, (suivant les traitements effectués) vous pouvez aussi améliorer les temps de réponses avec le paramètre work_mem.

    voir http://www.postgresql.org/docs/8.2/s...-resource.html

    voila.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Question sur PostGreSQL
    Par gabychon dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 24/05/2005, 23h23
  2. Pb insert sur postgresql 8 (windows)
    Par testeur dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 21/10/2004, 17h44
  3. gerer les parametres entrée sur un TADOStoredProc
    Par keguira dans le forum Bases de données
    Réponses: 1
    Dernier message: 13/09/2004, 15h56
  4. Pbleme UPDATE sur POSTGRESQL
    Par $grm$ dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 26/04/2004, 14h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo