checkpoint_flush_after

Type: integer
Défaut: 32 (256kB)
Min: 0 (0kB)
Max: 256 (2MB)
Unité: 8kB
Contexte: sighup
Redémarrer: false
Depuis: 9.6

Quand plus que cette quantité de données ont été écrites par le processus d'écriture en tâche de fond (bgwriter), tente de forcer le système d'exploitation à écrire les données sur disque. Faire cela limite la quantité de données modifiées dans le cache disque du noyau, réduisant le risque de petites pauses dues à l'exécution d'un fsync à la fin d'un checkpoint ou à l'écriture massive en tâche de fond des données modifiées. Souvent, cela réduira fortement la latence des transactions mais il existe aussi quelques cas de dégradation des performances, tout spécialement avec les charges de travail plus importantes que shared_buffers, mais plus petites que le cache disque du système d'exploitation. Ce paramètre pourrait ne pas avoir d'effet sur certaines plateformes. Si cette valeur est indiquée sans unité, elle est considérée comme un nombre de blocs, autrement dit BLCKSZ octets, typiquement 8 Ko. L'intervalle valide se situe entre 0, qui désactive le writeback forcé, et 2MB. La valeur par défaut est 256KB sur Linux, 0 ailleurs. (Si BLCKSZ ne vaut pas 8 ko, les valeurs par défaut et maximale n'évoluent pas de façon proportionnelle à cette constante.) Ce paramètre est seulement configurable dans le fichier postgresql.conf et à la ligne de commande.

Recommandations [EN]

Unless you have time to tune memory flushing behavior and test for improvements/regressions

Commentaires