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 12/04/2017 08:51:42

adrien1
Membre

configuer les valeurs de vm.dirty_background_bytes et devm.dirty_bytes

Bonjour à tous,

Je souhaiterais connaître la "formule" pour configurer correctement les valeurs de vm.dirty_background_bytes et vm.dirty_bytes.
Ou du moins, m'indiquer dans quel cas doit-on l'augmenter ou la diminuer.
Si je ne me trompe pas, ces deux paramètres interviennent dans le "lissage" des checkpoints (checkpoint_completion_target)
De quoi cela dépend-il ?  J'imagine que cela dépend des disques, du RAID, ...
Le serveur PostgreSQL serait un serveur dédié.

Merci !

Hors ligne

#2 12/04/2017 09:18:43

Arkhena
Membre

Re : configuer les valeurs de vm.dirty_background_bytes et devm.dirty_bytes

Bonjour,

Avez-vous setté les paramètres "basiques" avant de toucher à ceux-là ?

Pour moi, les paramètres "basiques" sont:
    wal_buffers
    checkpoint_completion_target
    checkpoint_timeout
    en Version 9.4 et avant:
        checkpoint_segments
    En version 9.5 et après
        min_wal_size
        max_wal_size

Quelle valeur avez-vous assigné à ces paramètres?
Quelle fréquence de checkpoint voyez-vous dans les logs ?

Cordialement,

Arkhena

Hors ligne

#3 12/04/2017 10:08:09

adrien1
Membre

Re : configuer les valeurs de vm.dirty_background_bytes et devm.dirty_bytes

Je n'ai pas encore le serveur en production...
La version PostgreSQL serait la 9.5
mais dans un premier temps voici le configsuration que je compte mettre en place :
    wal_buffers = -1 (basé sur shared buffer)
    checkpoint_completion_target = 0.9
    checkpoint_timeout = 15 min
Pour min_wal_size et max_wal_size, je compte laisser par défaut dans un premier et me baser sur les calculs trouvés sur ce site

Peut-être qu'il sera difficile de répondre à ma question sans serveur en production...

Merci

Dernière modification par adrien1 (12/04/2017 10:08:27)

Hors ligne

#4 12/04/2017 11:01:50

Arkhena
Membre

Re : configuer les valeurs de vm.dirty_background_bytes et devm.dirty_bytes

Effectivement, tant que vous ne voyez pas tourner l'instance, c'est compliqué de faire de l'optimisation...

Je suis surprise que le lien que vous citez ne parle pas de modifier le paramètre min_wal_size...

Bref, Avant de vous lancer dans la modification de vm.dirty_background_bytes et de vm.dirty_bytes, settez les paramètres basiques et voyez la fréquence de vos checkpoints. S'ils ont lieu plus souvent que checkpoint_timeout, ajustez le paramétrage. Si ensuite vous avez des soucis et que vous identifiez que ces soucis sont liés aux checkpoints, vous pourrez jouer avec dirty_background et dirty_bytes.

Cordialement,

Arkhena

NB: De manière générale, les serveurs n'étant de nos jours plus trop pauvres en RAM,  je mets WAL_buffers à 16 Mo pour pouvoir avoir un fichier entier en mémoire...

Hors ligne

#5 12/04/2017 11:18:15

gleu
Administrateur

Re : configuer les valeurs de vm.dirty_background_bytes et devm.dirty_bytes

Bof, les dirty* n'ont pas uniquement à voir avec les checkpoints. Ça concerne toutes les écritures et ça tient plutôt à ce que la carte RAID est capable de subir. La taille de son cache en écriture donne une bonne idée de ce qu'il faut configurer pour les paramètres dirty* (hint: une valeur légèrement inférieure).


Guillaume.

Hors ligne

#6 12/04/2017 11:18:56

gleu
Administrateur

Re : configuer les valeurs de vm.dirty_background_bytes et devm.dirty_bytes

Oh, et concernant wal_buffers, la valeur -1 est convenable dans la grande majorité des cas, sauf écritures vraiment violentes.


Guillaume.

Hors ligne

#7 13/04/2017 08:35:33

adrien1
Membre

Re : configuer les valeurs de vm.dirty_background_bytes et devm.dirty_bytes

Merci à vous pour vos réponses et informations,
Dès que le serveur sera en production et en cas de souci identifié je rouvrirai le poste.
Bonne journée

Hors ligne

Pied de page des forums