O recurso de gravação atômica de 16K do ApsaraDB RDS for MySQL melhora a eficiência de gravação ao desabilitar o parâmetro innodb_doublewrite (mecanismo de doublewrite do InnoDB). Este tópico descreve como utilizar o recurso de otimização de gravação e como realizar um teste de desempenho.
Informações básicas
A unidade mínima de leitura e gravação de dados no mecanismo MySQL InnoDB é uma página (geralmente com tamanho de 16 KB), mas a unidade mínima de E/S de um sistema de arquivos costuma ser de 4 KB. Ao gravar uma página de dados em disco, condições extremas, como quedas de energia, podem fazer com que algumas páginas do InnoDB sejam gravadas de forma incompleta. Por isso, o InnoDB introduziu o mecanismo de doublewrite para garantir a atomicidade das páginas de dados e evitar erros de gravação parcial. Quando o InnoDB precisa liberar páginas sujas (dirty pages), os dados são gravados no buffer de doublewrite. Se esse buffer estiver cheio, a thread responsável pela liberação só poderá ser executada novamente após o lote anterior de dados ser gravado no disco. Cada operação de liberação envolve duas operações de gravação, o que aumenta o consumo de recursos de E/S do disco.
Na maioria dos casos, a E/S do disco pode se tornar um gargalo de desempenho para aplicações com uso intensivo de gravação. O mecanismo de doublewrite do InnoDB aumenta significativamente o consumo de recursos de largura de banda e afeta o desempenho da sua instância ApsaraDB RDS for MySQL.
Visão geral do recurso
O ApsaraDB RDS for MySQL oferece suporte à gravação atômica de 16K ponta a ponta. Ao habilitar o recurso de gravação atômica de 16K, a atomicidade de cada gravação de página de dados é garantida, permitindo desabilitar com segurança o mecanismo de doublewrite do InnoDB. Isso reduz o número de operações de E/S de gravação, simplifica as operações de liberação e diminui significativamente os IOPS e a largura de banda necessários para gravar dados no disco, melhorando o desempenho de gravação da sua instância RDS.
Após habilitar o recurso de gravação atômica de 16K, as consultas por segundo (QPS) aumentam pelo menos 40%. Para mais informações, consulte Performance Testing.
Pré-requisitos
Sua instância deve executar o MySQL 5.7, 8.0 ou 8.4.
Tipo de armazenamento: A instância RDS deve usar SSDs padrão ou discos de alto desempenho.
Faturamento
O recurso de gravação atômica de 16K é gratuito. Não há cobrança ao habilitar ou desabilitar esse recurso.
Precauções
Ao habilitar ou desabilitar o recurso de gravação atômica de 16K, sua instância RDS será reiniciada. Proceda com cautela.
Se você habilitar o recurso de gravação atômica de 16K em uma instância primária, não será possível desabilitá-lo nas instâncias somente leitura associadas, evitando atrasos de replicação causados por inconsistência de desempenho.
Ao criar uma instância somente leitura ou restaurar dados de um backup, a configuração de gravação atômica de 16K é herdada da instância de origem.
Gerenciar gravação atômica de 16K
Para melhorar o desempenho da instância e a experiência do usuário, as instâncias que atendem aos prerequisites para habilitar o recurso de gravação atômica de 16K e às condições abaixo já possuem esse recurso habilitado por padrão:
Novas instâncias: instâncias adquiridas no console do ApsaraDB RDS em ou após 14 de maio de 2025.
Instâncias YiTian RDS existentes: instâncias cuja product type não foi alterada.
Instâncias padrão existentes não oferecem suporte ao recurso de gravação atômica de 16K.
É possível habilitar ou desabilitar manualmente o recurso de gravação atômica de 16K no console para instâncias compatíveis.
Acesse a lista de instâncias do ApsaraDB RDS, selecione uma região e clique no ID da instância desejada.
Na página Basic Information, clique no interruptor de gravação atômica de 16K para habilitar ou desabilitar o recurso.
Teste de desempenho
Preparação do teste
-
Recursos e métodos de teste: Este teste executa operações de gravação de dados em tipos de instância de uso geral e dedicada, em instâncias de alta disponibilidade com discos de alto desempenho, para observar as diferenças de desempenho antes e depois de habilitar o recurso de gravação atômica de 16K.
Edição
Tipo de armazenamento
Família de instâncias
Tipo de instância
CPU e memória
Alta disponibilidade
Disco de alto desempenho
Uso geral
mysql.n2.large.2c
4 núcleos, 8 GB
Alta disponibilidade
Disco de alto desempenho
Dedicada
mysql.x2.large.2c
4 núcleos, 8 GB
-
Instalação da ferramenta de teste: Este exemplo mostra como instalar o Sysbench em um sistema CentOS. Execute os comandos abaixo para realizar a instalação. Para mais detalhes, consulte a documentação oficial do Sysbench.
git clone https://github.com/akopytov/sysbench.git cd sysbench git checkout 0.5 yum -y install make automake libtool pkgconfig libaio-devel yum -y install mariadb-devel ./autogen.sh ./configure make -j make install -
Preparação dos dados de teste: 300 GB de dados (30 tabelas, 40 milhões de linhas por tabela).
sysbench oltp_write_only --tables=30 --table_size=40000000 --rand-type=special --rand-spec-pct=15 --threads=64 --time=100 prepareA tabela a seguir descreve os parâmetros envolvidos no teste de desempenho.
Parâmetro
Descrição
tables
Quantidade de tabelas. Neste exemplo, são utilizadas 30 tabelas.
table_size
Número de linhas em cada tabela. Neste exemplo, cada tabela contém 40 milhões de linhas.
rand-type
Tipo de distribuição dos números aleatórios. Neste exemplo, utiliza-se "special".
rand-spec-pct
Percentual de números aleatórios especiais considerados valores especiais. Neste exemplo, usa-se 15%.
threads
Quantidade de threads simultâneas. Neste exemplo, o valor definido é 64.
time
Duração do teste, em segundos. Neste exemplo, o valor é 100.
Testar desempenho de gravação
Execute o comando a seguir na instância de teste para comparar o desempenho de QPS com o recurso de gravação atômica de 16K habilitado e desabilitado.
sysbench oltp_write_only --tables=30 --table_size=40000000 --rand-type=special --rand-spec-pct=15 --threads=64 --time=100 run
Resultados do teste
Resultados do teste de gravação atômica de 16K
-
A figura a seguir apresenta os resultados do teste para a instância RDS padrão que executa o RDS High-availability Edition e utiliza um tipo de instância de uso geral com 4 núcleos e 8 GB de memória:
Com o recurso de gravação atômica de 16K habilitado (laranja), o QPS aumenta 48%.

-
A imagem abaixo exibe os resultados do teste para a instância RDS padrão que executa o RDS High-availability Edition e utiliza um tipo de instância dedicada com 4 núcleos e 8 GB de memória:
Ao habilitar o recurso de gravação atômica de 16K (laranja), observa-se um aumento de 47% no QPS.

Resultados do teste de gravação atômica de 16K + Buffer Pool Extension (BPE)
Para mais informações sobre o recurso Buffer Pool Extension (BPE) em discos de alto desempenho, consulte Buffer Pool Extension (BPE) feature.
O gráfico a seguir ilustra os resultados do teste para a instância RDS padrão que executa o RDS High-availability Edition e utiliza um tipo de instância de uso geral com 4 núcleos e 8 GB de memória:
Quando os recursos de gravação atômica de 16K e Buffer Pool Extension (BPE) estão habilitados (laranja), o QPS aumenta 93%.