Tous les produits
Search
Centre de documentation

ApsaraDB RDS:RDS PostgreSQL Buffer Pool Extension (BPE)

Dernière mise à jour :Aug 08, 2026

Lorsque les E/S disque constituent un goulot d'étranglement pour votre instance ApsaraDB RDS for PostgreSQL, la fonctionnalité d'accélération des E/S redirige les tables et fichiers temporaires vers des disques de cache haute vitesse. Cette optimisation améliore les performances des requêtes complexes jusqu'à 100 %. La fonctionnalité est gratuite et ne nécessite aucune modification applicative.

Fonctionnement

image

Les General ESSDs (Enterprise SSDs) reposent sur une architecture de stockage à trois niveaux, intégrant des disques de cache haute vitesse comme couche intermédiaire entre la mémoire et le stockage ESSD. La fonctionnalité d'accélération des E/S dirige les données temporaires vers cette couche de cache.

Sans accélération des E/S, toutes les données, y compris les tables et fichiers temporaires générés lors de l'exécution des requêtes, sont stockées sur des disques cloud. Lorsque l'accélération des E/S est activée, l'exécuteur de requêtes distingue les données par type :

  • Données non temporaires (tables standard, vues) : lecture depuis les disques cloud vers la mémoire pour traitement, comme d'habitude.

  • Données temporaires (tables et fichiers temporaires) : lecture et écriture directes sur les disques de cache.

ApsaraDB RDS for PostgreSQL utilise le tablespace rds_temp_tablespace pour représenter la couche de disque de cache. Les objets temporaires, c'est-à-dire ceux créés sans affectation explicite à un tablespace, sont automatiquement placés dans rds_temp_tablespace dès que vous définissez le paramètre temp_tablespaces.

Remarque

Le contenu des disques de cache n'est pas persistant. Les données stockées dans rds_temp_tablespace sont perdues lors des modifications de spécifications d'instance ou d'autres opérations de migration de données. Ne stockez pas d'objets de base de données non temporaires dans ce tablespace.

Cas d'utilisation

L'accélération des E/S s'avère particulièrement efficace lorsque les requêtes génèrent de grands volumes de données temporaires dépassant la mémoire disponible :

  • Tri, regroupement, agrégation et jointures : opérations qui débordent les résultats intermédiaires sur le disque.

  • Requêtes récursives utilisant des expressions de table communes (CTE) : CTE qui matérialisent de grands ensembles de résultats intermédiaires.

  • Requêtes ad hoc sans index dédié : filtres ou agrégations complexes nécessitant des analyses complètes.

  • Requêtes analytiques sur de grandes tables ou plusieurs tables : charges de travail de reporting et d'analyse exigeantes en E/S.

  • Charges de travail utilisant des tables temporaires : toute logique applicative créant explicitement des tables temporaires.

Prérequis

Avant d'activer l'accélération des E/S, vérifiez que votre instance répond à toutes les exigences suivantes :

Exigence Valeur
Méthode de facturation Abonnement ou paiement à l'utilisation
Version PostgreSQL 11 ou ultérieure
Version mineure du moteur 20231030 ou ultérieure
Édition RDS High-availability Edition
Type de produit Type de produit standard
Type de stockage General ESSDs
Famille d'instances Famille d'instances à usage général

L'instance doit également résider dans l'une des régions et zones suivantes :

Région Zone
Chine (Chengdu) Zone B
Chine (Pékin) Zone I
Chine (Shanghai) Zone M
Zone N
Chine (Hangzhou) Zone J
Remarque

Après avoir activé I/O Acceleration sur la page d'achat, confirmez la disponibilité dans la section Zone and Network of Primary Node.

Activer l'accélération des E/S

Important

L'activation ou la désactivation de l'accélération des E/S entraîne une interruption de service d'environ 30 secondes. Effectuez cette opération pendant les heures creuses.

Option 1 : Activation lors de la création d'une instance (recommandée)

Lors de la création d'une instance RDS, configurez les paramètres pour respecter les prérequis listés ci-dessus, puis activez I/O Acceleration.

image

Option 2 : Activation sur une instance existante

  1. Accédez à la page Instances. Dans la barre de navigation supérieure, sélectionnez la région où réside l'instance, puis cliquez sur l'ID de l'instance.

  2. Dans la section Basic Information, cliquez sur Configure General ESSD à droite de Storage Type.

  3. Dans la boîte de dialogue, activez I/O Acceleration.

    image

Définir le paramètre temp_tablespaces

Une fois l'accélération des E/S activée, le tablespace rds_temp_tablespace est créé automatiquement. Définissez le paramètre temp_tablespaces sur rds_temp_tablespace afin que les objets temporaires utilisent par défaut les disques de cache.

Pour obtenir des instructions sur la modification des paramètres, consultez Modifier les paramètres d'une instance ApsaraDB RDS for PostgreSQL.

Pour appliquer le paramètre uniquement à la session actuelle, exécutez :

SET temp_tablespace TO 'rds_temp_tablespace';

Pour revenir aux disques cloud, définissez temp_tablespaces sur ''.

Vérifier la configuration

Connectez-vous à l'instance (voir Se connecter à une instance ApsaraDB RDS for PostgreSQL), puis exécutez les instructions suivantes :

-- Create a regular table
CREATE TABLE test_table (di INT);

-- Create a temporary table
CREATE TEMPORARY TABLE test_temp_table (id INT);

-- Query which tablespace each table uses
SELECT
    c.relname AS table_name,
    COALESCE(t.spcname, 'pg_default') AS tablespace_name
FROM
    pg_class c
JOIN
    pg_namespace n ON c.relnamespace = n.oid
LEFT JOIN
    pg_tablespace t ON c.reltablespace = t.oid
WHERE
    c.relkind = 'r'
    AND c.relname IN ('test_table', 'test_temp_table');

Résultat attendu :

    table_name    |   tablespace_name
------------------+---------------------
 test_table       | pg_default
 test_temp_table  | rds_temp_tablespace
(2 rows)

La présence de test_temp_table dans rds_temp_tablespace confirme que l'accélération des E/S est active.

Notes d'utilisation

  • L'espace disque de cache est alloué en fonction du type de votre instance. Si le cache est saturé, l'erreur ERROR: could not write to file "pg_tblspc/xxxx": No space left on device est signalée pour les instructions écrivant des données temporaires. Les instructions SQL opérant sur des données non temporaires ne sont pas affectées.

  • Les données dans rds_temp_tablespace ne sont pas durables. Elles sont perdues lors des modifications de spécifications d'instance ou d'autres opérations de migration de données.

Dépannage

ERROR: No space left on device

Cette erreur signifie que le tablespace rds_temp_tablespace est plein. Procédez dans l'ordre suivant pour y remédier :

  1. Terminez la session actuelle et reconnectez-vous. L'instance supprime les fichiers temporaires à la fin d'une session. Réexécutez l'instruction après reconnexion.

  2. Revenez aux disques cloud en définissant temp_tablespaces sur ''. Cela supprime la limite du disque de cache, mais élimine également l'avantage en performances de l'accélération des E/S.

Étapes suivantes

  • Pour connaître tous les types de stockage pris en charge par ApsaraDB RDS for PostgreSQL, consultez Types de stockage.

  • Pour un aperçu des General ESSDs et de leur architecture à trois niveaux, voir General ESSDs.

  • Si vos charges de travail présentent des demandes d'IOPS de pointe imprévisibles, envisagez d'activer l'explosion d'E/S en plus de l'accélération des E/S.