ative a criptografia transparente de dados (TDE) no RDS for MySQL gera sobrecarga de criptografia, o que reduz o throughput de consultas e aumenta o uso da cpu. Este relatório apresenta dados de desempenho medidos em dois tamanhos de instância e em vários tipos de carga de trabalho para ajudar você a decidir se esse trade-off é adequado para o seu cenário.
Antes de ative o TDE
Impacto no desempenho: em baixa simultaneidade, o TDE reduz o throughput em até 20%. Em alta simultaneidade, a perda cai para menos de 5%, principalmente devido à mesclagem de E/S.
Sensibilidade da carga de trabalho: cargas de trabalho intensivas em gravação (oltp_write_only, oltp_update_index) apresentam a maior sobrecarga.
Conclusões do teste
Baixa simultaneidade: a perda de desempenho chega a 20%.
Alta simultaneidade: a perda de desempenho cai para menos de 5%, em grande parte devido à mesclagem de E/S.
Cargas de trabalho intensivas em gravação (oltp_write_only, oltp_update_index) apresentam a sobrecarga mais significativa.
-
Aumento na utilização da cpu quando o TDE está ativado e há acesso a tabelas criptografadas:
Instância de 4 núcleos e 16 GB: +0,06% a +4,22%
Instância de 8 núcleos e 32 GB: +0,12% a +2,86%
Ambiente de teste
| Item de configuração | Cenário 1 | Cenário 2 |
|---|---|---|
| Região e zona | cn-hangzhou | |
| Tipo de rede | Virtual Private Cloud (VPC) | |
| Arquitetura de hardware | x86-64 | |
| Tipo de armazenamento | SSDs locais premium | |
| CPU | 4 núcleos | 8 núcleos |
| Memória | 16 GB | 32 GB |
| Tamanho do Buffer Pool | 12 GB | 24 GB |
| IOPS máximo | 7.000 | 12.000 |
| Versão da instância | mysql80_8.0.28_20230610 | |
| Tamanho do conjunto de dados de teste | 41 GB | |
Ferramenta de teste
Sysbench é uma ferramenta de benchmark de código aberto, modular, multiplataforma e multithread para avaliar o desempenho do banco de dados sob carga.
Métricas de teste
TPS (Transações por segundo): o número de transações que o banco de dados confirma por segundo.
Latência média: o tempo médio para executar uma transação, medido em milissegundos (ms).
Esquema da tabela de teste
Todos os testes usam o esquema de tabela padrão do Sysbench:
CREATE TABLE `sbtest8` (
`id` int NOT NULL AUTO_INCREMENT,
`k` int NOT NULL DEFAULT '0',
`c` char(120) NOT NULL DEFAULT '',
`pad` char(60) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
KEY `k_8` (`k`)
) ENGINE=InnoDB AUTO_INCREMENT=100001 DEFAULT CHARSET=utf8mb3
Procedimento de teste
Este procedimento mede o desempenho de acesso a tabelas criptografadas em uma instância MySQL com o TDE ativado em diferentes modelos de carga de trabalho.
-
Em uma instância ECS Linux, instale o cliente MySQL:
CentOS:
sudo yum install mysqlUbuntu:
sudo apt-get updatee depoissudo apt install mysql-server
-
Conecte-se ao banco de dados RDS for MySQL:
Para obter o endpoint do banco de dados e o número da porta, consulte visualize and gerencie instance endpoints and ports .
mysql -h<database_endpoint> -u<username> -P<port_number> -p<password> -
Saia do banco de dados e use o Sysbench para carregar os dados de teste. Este teste carrega 128 tabelas com 100.000 registros cada. O exemplo abaixo usa o modelo
oltp_read_writecom 16 threads. Substitua--threads=16pela quantidade de threads que você deseja testar (valores válidos: 1, 8, 16, 32, 64, 128, 256).sysbench --db-driver=mysql \ --mysql-host=<database_endpoint> \ --mysql-port=<port_number> \ --mysql-user=<username> \ --mysql-password=<password> \ --mysql-db=testdb \ --table_size=1000000 \ --tables=128 \ --threads=16 \ --time=60 \ oltp_read_write prepare -
execute o teste:
sysbench --db-driver=mysql \ --mysql-host=<database_endpoint> \ --mysql-port=<port_number> \ --mysql-user=<username> \ --mysql-password=<password> \ --mysql-db=testdb \ --table_size=1000000 \ --tables=128 \ --threads=16 \ --time=60 \ oltp_read_write run -
Limpe os dados de teste:
sysbench --db-driver=mysql \ --mysql-host=<database_endpoint> \ --mysql-port=<port_number> \ --mysql-user=<username> \ --mysql-password=<password> \ --mysql-db=testdb \ --table_size=1000000 \ --tables=128 \ --threads=16 \ --time=60 \ oltp_read_write cleanup
Cenário de teste 1: instância de 4 núcleos e 16 GB com SSDs locais premium
Linha de base com o TDE desativado: rds_ssd_4c16g_tde_off[3] Instância com o TDE ativado: rds_ssd_4c16g_tde_on[2]
Gráficos de tendência de desempenho


Utilização de cpu

Resumo dos dados de desempenho



Cenário de teste 2: instância de 8 núcleos e 32 GB com SSDs locais premium
Linha de base com o TDE desativado: rds_ssd_8c32g_tde_off[11] Instância com o TDE ativado: rds_ssd_8c32g_tde_on[12]
Gráficos de tendência de desempenho



Resumo dos dados de desempenho


