Gestion d'Amazon Aurora PostgreSQL - Amazon Aurora

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Gestion d'Amazon Aurora PostgreSQL

La section suivante explique la gestion des performances et de la mise à l'échelle d'un cluster de base de données Amazon Aurora PostgreSQL. Elle inclue également des informations relatives à d'autres tâches de maintenance.

Dimensionnement des instances de bases de données Aurora PostgreSQL

Vous pouvez dimensionner les instances de bases de données Aurora PostgreSQL de deux façons : le dimensionnement d'instance et le dimensionnement en lecture. Pour plus d'informations sur le dimensionnement en lecture, consultez Dimensionnement en lecture.

Vous pouvez mettre à l'échelle votre cluster de base de données Aurora PostgreSQL DB en modifiant la classe d'instance de base de données pour chaque instance du cluster de base de données. Aurora PostgreSQL prend en charge plusieurs classes d'instance de base de données optimisées pour Aurora. N'utilisez pas les classes d'instance db.t2 ou db.t3 pour des clusters Aurora d'une taille supérieure à 40 téraoctets (To).

Note

Nous recommandons d'utiliser les classes d'instance de base de données T uniquement pour les serveurs de développement et de test, ou pour d'autres serveurs non dédiés à la production. Pour plus de détails sur les classes d'instance T, consultez Types de classes d'instance de base de données.

La mise à l'échelle n'est pas instantanée. La modification apportée à une autre classe d'instance de base de données peut prendre 15 minutes ou plus. Si vous utilisez cette approche pour modifier la classe d'instance de base de données, vous appliquez le changement lors de la prochaine fenêtre de maintenance planifiée (plutôt qu'immédiatement) pour éviter d'affecter les utilisateurs.

Au lieu de modifier directement la classe d'instance de base de données, vous pouvez réduire les temps d'arrêt en utilisant les fonctions de haute disponibilité d'Amazon Aurora. Tout d'abord, ajoutez un réplica Aurora à votre cluster. Lorsque vous créez le réplica, choisissez la taille de classe d'instance de base de données que vous souhaitez utiliser pour votre cluster. Lorsque le réplica Aurora est synchronisé avec le cluster, effectuez un basculement vers le réplica nouvellement ajouté. Pour en savoir plus, consultez Réplicas Aurora et Basculement rapide avec Amazon Aurora PostgreSQL.

Pour obtenir les spécifications détaillées des classes d'instance de base de données prises en charge par Aurora PostgreSQL, veuillez consulter Moteurs de base de données pris en charge pour les classes d'instance de base de données.

Nombre maximal de connexions à une instance de base de données Aurora PostgreSQL

Un cluster de base de données Aurora PostgreSQL alloue des ressources en fonction de la classe d'instance de base de données et de sa mémoire disponible. Chaque connexion au cluster de base de données consomme des quantités incrémentielles de ces ressources, telles que la mémoire et le processeur. La mémoire consommée par connexion varie en fonction du type de requête, du nombre de requêtes et de l'utilisation éventuelle de tables temporaires. Même une connexion inactive consomme de la mémoire et du processeur. En effet, lorsque des requêtes sont exécutées sur une connexion, une plus grande quantité de mémoire est allouée pour chaque requête et elle n'est pas complètement libérée, même lorsque le traitement s'arrête. Nous vous recommandons donc de vous assurer que vos applications ne maintiennent pas des connexions inactives : chacune d'entre elles gaspille des ressources et a un impact négatif sur les performances. Pour plus d'informations, consultez la section Resources consumed by idle PostgreSQL connections (Ressources consommées par les connexions PostgreSQL inactives).

Le nombre maximal de connexions autorisées par une instance de base de données Aurora PostgreSQL est déterminé par la valeur de paramètre max_connections spécifiée dans le groupe de paramètres de cette instance de base de données. Le max_connections paramètre idéal est celui qui prend en charge toutes les connexions client dont votre application a besoin, sans qu'il y ait trop de connexions inutilisées, plus au moins 3 connexions supplémentaires pour prendre en charge AWS l'automatisation. Avant de modifier le paramètre max_connections, nous vous recommandons de prendre en compte les points suivants :

  • Si la valeur max_connections est trop faible, l'instance de base de données Aurora PostgreSQL peut ne pas disposer de connexions suffisantes lorsque les clients tentent de se connecter. Si c'est le cas, les tentatives de connexion à l'aide de psql génèrent des messages d'erreur tels que les suivants :

    psql: FATAL: remaining connection slots are reserved for non-replication superuser connections
  • Si la valeur max_connections dépasse le nombre de connexions réellement nécessaires, les connexions inutilisées peuvent entraîner une dégradation des performances.

La valeur par défaut de max_connections est dérivée de la fonction Aurora PostgreSQL LEAST suivante :

LEAST({DBInstanceClassMemory/9531392},5000).

Si vous souhaitez modifier la valeur de max_connections, vous devez créer un groupe de paramètres de base de données personnalisé et y modifier sa valeur. Après avoir appliqué votre groupe de paramètres de base de données personnalisé à votre cluster, veillez à redémarrer l'instance principale pour que la nouvelle valeur prenne effet. Pour plus d’informations, consultez Paramètres Amazon Aurora PostgreSQL. et Création d'un groupe de paramètres de cluster de base de données.

Astuce

Si vos applications ouvrent et ferment régulièrement des connexions, ou si elles ont ouvert un grand nombre de connexions de longue durée, nous vous recommandons d'utiliser Proxy Amazon RDS. RDS Proxy est un proxy de base de données entièrement géré et hautement disponible qui utilise le regroupement de connexions pour partager les connexions de base de données de manière sécurisée et efficace. Pour en savoir plus sur RDS Proxy, consultez Utilisation d'Amazon RDS Proxy pour Aurora.

Pour obtenir plus de détails sur la façon dont les instances Aurora Serverless v2 gèrent ce paramètre, consultez Nombre maximal de connexions pour Aurora Serverless v2.

Limites de stockage temporaires pour Aurora PostgreSQL

Aurora PostgreSQL stocke les tables et les index dans le sous-système de stockage Aurora. Aurora PostgreSQL utilise un stockage temporaire séparé pour les fichiers temporaires non persistants. Il s'agit notamment des fichiers qui sont utilisés à des fins telles que le tri de grands jeux de données pendant le traitement des requêtes ou les opérations de génération d'index. Pour en savoir plus, consultez l'article Comment puis-je résoudre les problèmes de stockage local dans les instances compatibles avec Aurora PostgreSQL ?

Ces volumes de stockage locaux sont sauvegardés par Amazon Elastic Block Store et peuvent être étendus en utilisant une classe d'instance de base de données plus grande. Pour plus d'informations sur le stockage, consultez Stockage et fiabilité d'Amazon Aurora. Vous pouvez également augmenter votre espace de stockage local pour les objets temporaires en utilisant un type d'instance compatible NVMe et des objets temporaires compatibles Aurora Optimized Reads. Pour plus d’informations, consultez Amélioration des performances des requêtes pour Aurora PostgreSQL avec Aurora Optimized Reads.

Note

Vous verrez peut-être des événements storage-optimization lors de la mise à l'échelle d'instances de base de données, de db.r5.2xlarge à db.r5.4xlarge par exemple.

Le tableau suivant indique la quantité maximale de stockage temporaire disponible pour chaque classe d'instance de base de données Aurora PostgreSQL. Pour plus d'informations sur la prise en charge d'une classe d'instance de base de données pour Aurora, consultez Classes d'instances de base de données Aurora.

Classe d'instance de base de données Stockage temporaire maximal disponible (Gio)
db.x2g.16xlarge1829
db.x2g.12xlarge1606
db.x2g.8xlarge1071
db.x2g.4xlarge535
db.x2g.2xlarge268
db.x2g.xlarge134
db.x2g.large67
db.r7g.16xlarge 1008
db.r7g.12xlarge 756
db.r7g.8xlarge 504
db.r7g.4xlarge 252
db.r7g.2xlarge 126
db.r7g.xlarge 63
db.r7g.large 32
db.r6g.16xlarge 1008
db.r6g.12xlarge 756
db.r6g.8xlarge 504
db.r6g.4xlarge 252
db.r6g.2xlarge 126
db.r6g.xlarge 63
db.r6g.large 32
db.r6i.32xlarge 1829
db.r6i.24xlarge 1 500
db.r6i.16xlarge 1008
db.r6i.12xlarge 748
db.r6i.8xlarge 504
db.r6i.4xlarge 249
db.r6i.2xlarge 124
db.r6i.xlarge 62
db.r6i.large 31
db.r5.24xlarge 1 500
db.r5.16xlarge 1008
db.r5.12xlarge 748
db.r5.8xlarge 504
db.r5.4xlarge 249
db.r5.2xlarge 124
db.r5.xlarge 62
db.r5.large 31
db.r4.16xlarge 960
db.r4.8xlarge 480
db.r4.4xlarge 240
db.r4.2xlarge 120
db.r4.xlarge 60
db.r4.large 30
db.t4g.large 16,5
db.t4g.medium 8,13
db.t3.large 16
db.t3.medium 7.5
Note

Les types d'instances compatibles NVMe peuvent augmenter l'espace temporaire disponible jusqu'à atteindre la taille totale du NVMe. Pour plus d’informations, consultez Amélioration des performances des requêtes pour Aurora PostgreSQL avec Aurora Optimized Reads.

Vous pouvez surveiller le stockage temporaire disponible pour une instance de base de données à l'aide de la FreeLocalStorage CloudWatch métrique --> décrite dans CloudWatch Métriques Amazon pour Amazon Aurora. (Cela ne s'applique pas à Aurora Serverless v2).

Pour certaines charges de travail, vous pouvez réduire la quantité de stockage temporaire en allouant plus de mémoire aux processus qui exécutent l'opération. Pour augmenter la mémoire disponible pour une opération, en augmentant les valeurs des paramètres PostgreSQL work_mem ou maintenance_work_mem.

Grandes pages pour Aurora PostgreSQL

Les Huge pages (Grandes pages) sont une fonction de gestion de la mémoire qui réduit la surcharge lorsqu'une instance de base de données fonctionne avec de gros morceaux de mémoire contigus, tels que ceux utilisés par les tampons partagés. Cette fonction PostgreSQL est prise en charge par toutes les versions actuellement disponibles d'Aurora PostgreSQL.

Le paramètre Huge_pages est activé par défaut pour toutes les classes d'instances de base de données autres que les classes d'instances t3.medium, db.t3.large, db.t4g.medium, db.t4g.large. Vous ne pouvez pas modifier la valeur du paramètre huge_pages ni désactiver cette fonction dans les classes d'instances prises en charge par Aurora PostgreSQL.