Type: | integer |
Défaut: | -1 (-1) |
Min: | -1 (-1) |
Max: | 262143 (2097144kB) |
Unité: | 8kB |
Contexte: | postmaster |
Redémarrer: | true |
La quantité de mémoire partagée utilisée pour les données des journaux de transactions qui n'ont pas encore été écrites sur disque. La configuration par défaut de -1 sélectionne une taille égale à 1/32 (environ 3%) de shared_buffers, mais pas moins de 64kB
, et pas plus que la taille d'un journal de transactions, soit généralement 16MB
. Cette valeur peut être configurée manuellement si le choix automatique est trop élevé ou trop faible, mais tout valeur positive inférieure à 32kB
sera traitée comme étant exactement 32kB
. Si cette valeur est spécifiée sans unité, elle est prise en tant que nombre de blocs de journaux de transactions, autrement dit XLOG_BLCKSZ
octets, typiquement 8 Ko. Ce paramètre ne peut être configuré qu'au démarrage du serveur.
Le contenu du cache des journaux de transactions est écrit sur le disque à chaque validation d'une transaction, donc des valeurs très importantes ont peu de chance d'apporter un gain significatif. Néanmoins, configurer cette valeur à au moins quelques mégaoctets peut améliorer les performances en écriture sur un serveur chargé quand plusieurs clients valident en même temps. La configuration automatique sélectionnée par défaut avec la valeur -1 devrait être convenable.
Recommandations [EN]
Sur StackOverflow
Sur pgsql-hackers
- AdvanceXLInsertBuffers() vs wal_sync_method=open_datasync
- Re: walsender performance regression due to logical decoding on standby changes
- Re: walwriter interacts quite badly with synchronous_commit=off
- Lowering the default wal_blocksize to 4K
- Re: SLRU optimization - configurable buffer pool and partitioning the SLRU lock