Todos os produtos
Search
Central de documentação

ApsaraDB RDS:RDS PostgreSQL Buffer Pool Extension (BPE)

Última atualização: Jun 26, 2026

Quando a E/S de disco se torna um gargalo para sua instância ApsaraDB RDS for PostgreSQL, o recurso de aceleração de E/S direciona tabelas temporárias e arquivos para discos de cache de alta velocidade, melhorando o desempenho de consultas complexas em até 100%. Esse recurso é gratuito e não exige alterações na aplicação.

Como funciona

image

Os ESSDs gerais (Enterprise SSDs) utilizam uma arquitetura de armazenamento de três camadas, com discos de cache de alta velocidade como camada intermediária entre a memória e o armazenamento ESSD. O recurso de aceleração de E/S direciona dados temporários para essa camada de cache.

Sem a aceleração de E/S, todos os dados — incluindo tabelas temporárias e arquivos gerados durante a execução de consultas — ficam armazenados em discos em nuvem. Com a aceleração de E/S ativada, o executor de consultas separa os dados por tipo:

  • Dados não temporários (tabelas regulares, visualizações): leitura dos discos em nuvem para a memória para processamento, conforme o padrão.

  • Dados temporários (tabelas e arquivos temporários): leitura e gravação diretamente nos discos de cache.

O ApsaraDB RDS for PostgreSQL usa o tablespace rds_temp_tablespace para representar a camada de disco de cache. Objetos temporários criados sem atribuição explícita de tablespace são colocados automaticamente no rds_temp_tablespace após a definição do parâmetro temp_tablespaces.

Nota

O conteúdo do disco de cache não é durável. Os dados armazenados no rds_temp_tablespace são perdidos durante alterações de especificação da instância ou outras operações de migração de dados. Não armazene objetos de banco de dados não temporários neste tablespace.

Casos de uso

A aceleração de E/S é mais eficaz quando as consultas geram grandes volumes de dados temporários que excedem a memória disponível:

  • Ordenação, agrupamento, agregação e junções: operações que descarregam resultados intermediários no disco.

  • Consultas recursivas com expressões de tabela comuns (CTEs): CTEs que materializam grandes conjuntos de resultados intermediários.

  • Consultas ad hoc sem índices de suporte: filtros complexos ou agregações que exigem varreduras completas.

  • Consultas analíticas em tabelas grandes ou múltiplas tabelas: cargas de trabalho de relatórios e análises com altas demandas de E/S.

  • Cargas de trabalho com tabelas temporárias: qualquer lógica de aplicação que crie explicitamente tabelas temporárias.

Pré-requisitos

Antes de ativar a aceleração de E/S, verifique se sua instância atende a todos os requisitos abaixo:

Requisito

Valor

Método de faturamento

Assinatura ou pagamento conforme o uso

Versão do PostgreSQL

11 ou posterior

Versão secundária do mecanismo

20231030 ou posterior

Edição

RDS High-availability Edition

Tipo de produto

Tipo de produto padrão

Tipo de armazenamento

ESSDs gerais

Família de instâncias

Família de instâncias de uso geral

A instância também deve estar localizada em uma das seguintes regiões e zonas:

Região Zona
China (Chengdu) Zone B
China (Beijing) Zone I
China (Shanghai) Zone M
Zone N
China (Hangzhou) Zone J
Nota

Após ativar a I/O Acceleration na página de compra, confirme a disponibilidade na seção Zone and Network of Primary Node.

Ativar aceleração de E/S

Importante

Ativar ou desativar a aceleração de E/S causa uma interrupção de serviço de aproximadamente 30 segundos. Execute esta operação fora dos horários de pico.

Opção 1: Ativar ao criar uma instância (recomendado)

Ao criar uma instância RDS, configure os parâmetros para atender aos pré-requisitos listados acima e ative a I/O Acceleration.

image

Opção 2: Ativar em uma instância existente

  1. Acesse a página Instances. Na barra de navegação superior, selecione a região onde a instância está localizada e clique em Configure General ESSD à direita de Storage Type.

  2. Na seção Basic Information, clique em Configure General ESSD à direita de Storage Type.

  3. Na caixa de diálogo, ative a I/O Acceleration.

    image

Definir o parâmetro temp_tablespaces

Após ativar a aceleração de E/S, o tablespace rds_temp_tablespace é criado automaticamente. Defina o parâmetro temp_tablespaces como rds_temp_tablespace para que objetos temporários usem discos de cache por padrão.

Para obter instruções sobre como modificar parâmetros, consulte Modificar os parâmetros de uma instância ApsaraDB RDS for PostgreSQL.

Para aplicar a configuração apenas à sessão atual, execute:

SET temp_tablespace TO 'rds_temp_tablespace';

Para reverter para discos em nuvem, defina temp_tablespaces como ''.

Verificar a configuração

Conecte-se à instância (consulte Conectar-se a uma instância ApsaraDB RDS for PostgreSQL) e execute as seguintes instruções:

-- 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');

Saída esperada:

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

A presença de test_temp_table no rds_temp_tablespace confirma que a aceleração de E/S está ativa.

Observações de uso

  • O espaço do disco de cache é alocado com base no tipo da instância. Se o cache ficar cheio, o erro ERROR: could not write to file "pg_tblspc/xxxx": No space left on device será relatado para instruções que gravam dados temporários. Instruções SQL que operam em dados não temporários não são afetadas.

  • Os dados no rds_temp_tablespace não são duráveis e são perdidos durante alterações de especificação da instância ou outras operações de migração de dados.

Solução de problemas

ERROR: No space left on device

Este erro indica que o tablespace rds_temp_tablespace está cheio. Resolva-o seguindo esta ordem:

  1. Encerre a sessão atual e reconecte-se. A instância limpa arquivos temporários quando uma sessão termina. Execute novamente a instrução após a reconexão.

  2. Retorne aos discos em nuvem definindo temp_tablespaces como ''. Isso remove o limite do disco de cache, mas também elimina o benefício de desempenho da aceleração de E/S.

Próximos passos

  • Para consultar todos os tipos de armazenamento suportados pelo ApsaraDB RDS for PostgreSQL, veja Tipos de armazenamento.

  • Para obter uma visão geral dos ESSDs gerais e sua arquitetura de três camadas, consulte ESSDs gerais.

  • Se suas cargas de trabalho tiverem demandas de IOPS de pico imprevisíveis, considere ativar o I/O burst além da aceleração de E/S.