Pourquoi la valeur par défaut du paramètre de base de données shared_buffers pour Aurora PostgreSQL est-elle supérieure à la valeur par défaut pour Amazon RDS PostgreSQL ?

Dernière mise à jour : 27/06/2022

Solution

PostgreSQL recommande d'utiliser une valeur de départ raisonnable pour shared_buffers de 25 % de la mémoire de votre système. Toutefois, vous pouvez modifier cette valeur en fonction des exigences de votre charge de travail. Pour trouver une valeur appropriée pour shared_buffers pour votre charge de travail, consultez la documentation PostgreSQL relative à la Consommation des ressources.

PostgreSQL s'appuie fortement sur le système d'exploitation pour sa mise en cache (double mise en mémoire tampon). Par conséquent, il est peu probable que l'allocation de plus de 40 % de RAM à shared_buffers soit plus performante qu'une valeur inférieure.

Pour les instances de base de données RDS, la valeur par défaut du groupe de paramètres de base de données est définie sur 25 % de la mémoire totale. Mais pour les instances de base de données Aurora, la valeur par défaut du groupe de paramètres de base de données est définie entre 50 % et 75 %, selon la classe d'instance. Cela est dû au fait qu'Aurora PostgreSQL élimine la double mise en mémoire tampon et n'utilise pas le cache du système de fichiers. Par conséquent, Aurora PostgreSQL peut augmenter shared_buffers pour améliorer les performances. Une bonne pratique consiste à utiliser la valeur par défaut de 75 % pour le paramètre de base de données shared_buffers lors de l'utilisation d'Aurora PostgreSQL. Une valeur plus petite peut dégrader les performances en réduisant la mémoire disponible sur les pages de données, tout en augmentant également les E/S sur le sous-système de stockage Aurora. Pour plus d'informations, consultez la section Référence Amazon Aurora PostgreSQL.

Remarque : vous devrez peut-être réduire la valeur du paramètre shared_buffers pour certaines charges de travail. Par exemple, vous devrez peut-être réduire la valeur si votre charge de travail accepte un grand nombre de connexions supérieur à la valeur par défaut, ou si vous utilisez fréquemment des valeurs plus élevées de work_mem, maintenance_work_mem, etc. Toutefois, une valeur plus petite pour shared_buffers signifie que le taux d'accès au cache est également plus faible. Par conséquent, vous pouvez constater une augmentation de la latence d'accès pour les pages de base de données en raison de l'accès fréquent au stockage.


Cet article vous a-t-il été utile ?


Avez-vous besoin d'aide pour une question technique ou de facturation ?