RDSpour la mémoire Postgre SQL - Amazon Relational Database Service

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.

RDSpour la mémoire Postgre SQL

RDSpour Postgre, SQL la mémoire est divisée en partagée et locale.

Entrée de mémoire partagée RDS pour Postgre SQL

RDScar Postgre SQL alloue de la mémoire partagée au démarrage de l'instance. La mémoire partagée se décompose en sous-zones. Vous trouverez ci-dessous une description des principales sous-zones.

Mémoires tampons partagées

Le pool de mémoire tampon partagé est une RDS zone de SQL mémoire destinée à Postgre qui contient toutes les pages qui sont ou étaient utilisées par les connexions d'applications. Une page correspond à la version mémoire d'un bloc de disque. Le groupe de mémoires tampons partagées met en cache les blocs de données lus sur le disque. Le groupe réduit la nécessité de relire les données à partir du disque, ce qui améliore l'efficacité de la base de données.

Chaque table et chaque index est stocké sous la forme d'un tableau de pages de taille fixe. Chaque bloc contient plusieurs tuples, qui correspondent à des lignes. Un tuple peut être stocké sur n'importe quelle page.

Le groupe de mémoires tampons partagées dispose d'une mémoire limitée. Si une nouvelle demande nécessite une page qui n'est pas en mémoire et qu'il n'en existe plus, Postgre SQL évacue une page moins fréquemment utilisée RDS pour répondre à la demande. La politique d'expulsion est implémentée par un algorithme de balayage horaire.

Le paramètre shared_buffers détermine la quantité de mémoire que le serveur consacre à la mise en cache des données.

Buffers Write Ahead Log (WAL)

Une mémoire tampon write-ahead log (WAL) contient les données de transaction qui, RDS pour Postgre, seront écrites SQL ultérieurement dans un stockage persistant. À l'aide WAL de ce mécanisme, RDS Postgre SQL peut effectuer les opérations suivantes :

  • Récupérer des données après une défaillance

  • Réduire les I/O disque en évitant les écritures fréquentes sur disque

Lorsqu'un client modifie des données, RDS Postgre SQL écrit les modifications dans la WAL mémoire tampon. Lorsque le client émet unCOMMIT, le processus de WAL rédaction écrit les données de transaction dans le WAL fichier.

Le wal_level paramètre détermine la quantité d'informations écrites dans leWAL.

Entrée de mémoire locale RDS pour Postgre SQL

Chaque processus backend alloue de la mémoire locale pour le traitement des requêtes.

Zone de mémoire de travail

La zone de mémoire de travail contient des données temporaires pour les requêtes qui effectuent des opérations de tri et de hachage. Par exemple, une requête contenant une clause ORDER BY effectue un tri. Les requêtes utilisent des tables de hachage dans les jointures de hachage et les agrégations.

Le paramètre work_mem indique la quantité de mémoire à utiliser par les tables de hachage et les opérations de tri internes avant d'écrire dans des fichiers disque temporaires. La valeur par défaut est de 4 Mo. Plusieurs sessions peuvent s'exécuter simultanément et chacune peut exécuter des opérations de maintenance en parallèle. La mémoire de travail totale utilisée peut donc être un multiple du paramètre work_mem.

Zone de mémoire des travaux de maintenance

La zone de mémoire des travaux de maintenance met les données en cache pour les opérations de maintenance. Ces opérations incluent l'opération VACUUM, la création d'un index et l'ajout de clés étrangères.

Le paramètre maintenance_work_mem spécifie la quantité maximale de mémoire à utiliser par les opérations de maintenance. La valeur par défaut est de 64 Mo. Une session de base de données ne peut exécuter qu'une seule opération de maintenance à la fois.

Zone de mémoire tampon temporaire

La zone de mémoire tampon temporaire met en cache les tables temporaires pour chaque session de base de données.

Chaque session alloue des mémoires tampons temporaires en fonction des besoins jusqu'à la limite que vous spécifiez. Lorsque la session se termine, le serveur efface le contenu des mémoires tampons.

Le paramètre temp_buffers définit le nombre maximal de mémoires tampons temporaires utilisées par chaque session. Avant la première utilisation de tables temporaires au sein d'une session, vous pouvez modifier la valeur temp_buffers.