A gravação atômica de 16K aumenta o desempenho de gravação no ApsaraDB RDS for MySQL em pelo menos 40%, sem custo adicional. Esse recurso garante ao InnoDB, em nível de hardware, que cada gravação de página de dados de 16 KB seja atômica, tornando desnecessário o mecanismo de doublewrite.
Como funciona
O mecanismo InnoDB do MySQL lê e grava dados em páginas de 16 KB, mas a maioria dos sistemas de arquivos grava em blocos de 4 KB. Sem proteção extra, uma queda de energia durante a gravação pode deixar uma página parcialmente gravada. O InnoDB não consegue se recuperar dessa condição sozinho.
A solução tradicional do InnoDB é o mecanismo de doublewrite: ele grava cada página modificada (dirty page) primeiro no buffer de doublewrite e só depois a libera para sua localização real. Isso transforma cada liberação em duas operações de gravação, quase dobrando a carga de I/O de gravação.
A gravação atômica de 16K adota uma abordagem diferente. Em vez de gravar cada página duas vezes, ela exige que o armazenamento subjacente garanta que qualquer gravação de 16 KB seja concluída integralmente ou não ocorra. Com essa garantia, o buffer de doublewrite perde sua função de segurança. Assim, o parâmetro innodb_doublewrite é desativado, reduzindo o I/O de gravação pela metade.
Pré-requisitos
Antes de começar, verifique se você tem:
Uma instância RDS executando MySQL 5.7 ou MySQL 8.0
Tipo de armazenamento: SSDs padrão ou Premium ESSDs
Faturamento
A gravação atômica de 16K é gratuita. Não há cobrança para ativá-la ou desativá-la.
Observações de uso
Reinicialização da instância necessária: A instância reinicia ao ativar ou desativar a gravação atômica de 16K. Planeje uma janela de manutenção antes de fazer alterações.
Vinculação entre instâncias primárias e somente leitura: Se a gravação atômica de 16K estiver ativada na instância primária, não será possível desativá-la nas instâncias somente leitura. Desativá-la apenas nas instâncias somente leitura causaria incompatibilidade de desempenho e atraso na replicação.
Herança de configuração: Instâncias somente leitura e instâncias restauradas de backup herdam a configuração de gravação atômica de 16K da instância de origem.
Ativar ou desativar a gravação atômica de 16K
Instâncias que atendem aos pré-requisitos e às condições abaixo têm a gravação atômica de 16K ativada por padrão:
Novas instâncias: Adquiridas no console do ApsaraDB RDS em ou após 14 de maio de 2025.
Instâncias YiTian RDS existentes: Instâncias cujo tipo de produto não foi alterado. Instâncias padrão existentes não oferecem suporte à gravação atômica de 16K.
Abra a lista de instâncias do ApsaraDB RDS, selecione uma região e clique em ID da instância desejada.
Na página Basic Information, clique em botão 16K atomic write para ativar ou desativar o recurso.
Testes de desempenho
Os resultados a seguir foram medidos com o teste oltp_write_only do Sysbench em instâncias High-availability Edition com Premium ESSDs. A comparação considera o QPS antes e depois de ativar a gravação atômica de 16K.
Configuração do teste
Instâncias de teste
|
Edição |
Tipo de armazenamento |
Família da instância |
Tipo da instância |
Especificações |
|
High-availability |
Premium ESSD |
Uso geral |
mysql.n2.large.2c |
4 núcleos, 8 GB |
|
High-availability |
Premium ESSD |
Dedicada |
mysql.x2.large.2c |
4 núcleos, 8 GB |
Dados de teste: 300 GB distribuídos em 30 tabelas, com 40 milhões de linhas cada.
Instale o Sysbench (exemplo para CentOS):
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
Preparar os dados de teste:
sysbench oltp_write_only --tables=30 --table_size=40000000 --rand-type=special --rand-spec-pct=15 --threads=64 --time=100 prepare
Parâmetros do teste
|
Parâmetro |
Valor |
Descrição |
|
|
30 |
Número de tabelas |
|
|
40.000.000 |
Linhas por tabela |
|
|
special |
Distribuição de números aleatórios |
|
|
15 |
Percentual tratado como valores especiais |
|
|
64 |
Threads simultâneas |
|
|
100 |
Duração do teste (segundos) |
Execute o teste
sysbench oltp_write_only --tables=30 --table_size=40000000 --rand-type=special --rand-spec-pct=15 --threads=64 --time=100 run
Resultados do teste
Gravação atômica de 16K
-
Instância de uso geral (4 núcleos, 8 GB): O QPS aumentou 48% após a ativação da gravação atômica de 16K (laranja).

-
Instância dedicada (4 núcleos, 8 GB): O QPS aumentou 47% após a ativação da gravação atômica de 16K (laranja).

Gravação atômica de 16K + Buffer Pool Extension (BPE)
Para detalhes sobre o recurso Buffer Pool Extension (BPE) para Premium ESSDs, consulte Usar o recurso de aceleração de I/O de ESSDs gerais .
-
Instância de uso geral (4 núcleos, 8 GB): O QPS aumentou 93% após a ativação conjunta da gravação atômica de 16K e do BPE (laranja).
