Type: enum
Défaut: try
Contexte: postmaster
Redémarrer: true
Valeurs: [off, on, try]
Depuis: 9.4

Contrôle si les huge pages sont obligatoires pour la principale zone de mémoire partagée. Les valeurs valides sont try (le défaut), on et off. Avec huge_pages à try, le serveur tentera de demander des huge pages mais se rabattra sur le défaut en cas d'échec. Avec on, cet échec empêchera le serveur de démarrer. Avec off, il n'y aura pas de demande de huge pages.

Pour le moment, ce paramètre n'est supporté que sur Linux et Windows. Il est ignoré sur les autres systèmes quand il est à try.

L'utilisation des huge pages réduit la taille des tables de pages et la consommation CPU pour gérer la mémoire, améliorant ainsi les performances. Pour plus de détails sur la gestion des huge pages sur Linux, voir linux-huge-pages.

Sous Windows, les huge pages sont connues sous le nom de large pages. Pour les utiliser, vous devez assigner le droit « Verrouiller les pages en mémoire » (Lock Pages in Memory) à l'utilisateur Windows qui fait tourner PostgreSQL. Vous pouvez utiliser l'Éditeur de stratégie de groupe locale (gpedit.msc) pour assigner ce droit à l'utilisateur. Pour démarrer le serveur en ligne de commande en tant que processus autonome, et pas en tant que service Windows, l'invite de commande doit tourner en tant qu'administrateur, ou bien le contrôle de compte d'utilisateur (UAC, User Access Control) doit être désactivé. Quand l'UAC est activé, l'invite de commande normale révoque le droit « Verrouiller les pages en mémoire » de l'utilisateur au démarrage.

Notez que ce paramètre n'affecte que la partie principale de la mémoire partagée. Des systèmes d'exploitation comme Linux, FreeBSD et Illumos peuvent aussi utiliser les huge pages automatiquement pour les allocations mémoire normales sans demande explicite de PostgreSQL. Sur Linux, cela s'appelle transparent huge pagestransparent huge pages (THP). Elles sont connues pour causer une dégradation des performances avec PostgreSQL pour certains utilisateurs sur certaines versions de Linux ; leur usage est donc actuellement déconseillé (au contraire de l'utilisation explicite de huge_pages).

Recommandations [EN]

However, for small systems (< 2GB of RAM) may be beneficial to set to “off”.

Commentaires