Ao excluir ou atualizar registros em uma tabela MySQL, o InnoDB nem sempre consegue reutilizar o espaço liberado para novos dados. Os espaços vazios remanescentes tornam-se fragmentos de tablespace. Com o tempo, esses fragmentos dispersam os dados da tabela por páginas de disco não contíguas, o que aumenta a E/S e degrada o desempenho das consultas. O Database Autonomy Service (DAS) monitora os níveis de fragmentação na sua instância ApsaraDB RDS for MySQL e executa automaticamente OPTIMIZE TABLE ou ALTER TABLE durante a janela de manutenção configurada para recuperar esse espaço.
Pré-requisitos
Antes de começar, verifique se você possui:
Uma instância RDS executando a RDS High-availability Edition, RDS Enterprise Edition ou RDS Cluster Edition
Uma instância RDS em execução há mais de 14 dias
Uma instância RDS com pelo menos quatro núcleos de CPU
Tabelas físicas que usam o mecanismo InnoDB
Como funciona
O DAS avalia cada tabela com base nos limiares configurados e realiza verificações de segurança antes de executar a Automatic Fragment Recycling na instância primária durante a janela de manutenção.
Avaliação de limiares — O DAS seleciona uma tabela como alvo quando ambas as condições abaixo são atendidas:
O tamanho da tabela está entre 5 GB e 100 GB (controlado pelo parâmetro Tablespace)
A taxa de fragmentação excede a porcentagem configurada (controlada pelo parâmetro Fragmentation Percentage)
Uma tabela é excluída da recuperação se todas as tabelas forem menores que 5 GB ou maiores que 100 GB, ou se a taxa de fragmentação de todas as tabelas estiver abaixo de 10%.
Verificações pré-recuperação — Após uma tabela passar pela avaliação de limiares, o DAS executa duas categorias de verificações:
Verificações de parada imediata — Se qualquer uma falhar, o DAS ignora a tabela sem tentar novamente:
|
Verificação |
Requisito |
|
Espaço livre em disco |
Pelo menos 3× o tamanho físico da tabela. Por exemplo, uma tabela de 30 GB requer 90 GB de espaço livre. |
|
Estrutura da tabela |
Nenhum índice de texto completo (FULLTEXT). |
Verificações com nova tentativa — Se qualquer uma destas falhar, o DAS aguarda de 1 a 5 minutos e as executa novamente. Caso não sejam aprovadas dentro da janela de manutenção, o DAS tenta novamente na próxima janela:
|
Verificação |
Requisito |
|
Trabalhos de backup |
Nenhum trabalho de backup em execução na instância |
|
Alterações de esquema |
Nenhuma operação de evolução de esquema em andamento |
|
Utilização de CPU |
Abaixo de 70% no mesmo horário do dia anterior e da semana anterior; abaixo de 80% imediatamente antes do início da operação |
|
Consultas de longa duração |
Nenhuma instrução SQL em execução por mais de 3 segundos na tabela alvo |
|
Transações pendentes |
Nenhuma transação mantendo um bloqueio por mais de 15 segundos |
|
Sessões ativas |
Menos de 64 sessões ativas na instância |
Exemplo: Para uma tabela de 90 GB, se a recuperação tiver duração estimada de 30 minutos e início programado para as 03:00 de 10 de dezembro:
A utilização de CPU entre 03:00 e 03:30 em 9 de dezembro deve estar abaixo de 70%
A utilização de CPU entre 03:00 e 03:30 em 3 de dezembro deve estar abaixo de 70%
A utilização de CPU às 03:00 em 10 de dezembro deve estar abaixo de 80%
Se as verificações falharem e a janela de manutenção for encerrada, recupere o espaço manualmente executando OPTIMIZE TABLE. Para obter instruções, consulte Usar o comando OPTIMIZE TABLE para liberar o tablespace de uma instância MySQL.
Ativar o serviço de O&M do DAS
A Automatic Fragment Recycling exige que o serviço de Operações e Manutenção (O&M) do DAS esteja ativo. Se você já o ativou, pule esta seção.
Faça login no console do DAS.
No painel de navegação à esquerda, escolha Resources > Instances.
Na página Instances, localize sua instância RDS e clique em Activate na coluna O&M Service.
No painel exibido, selecione uma Service Duration e clique em Activate.
Ativar e configurar a recuperação automática de fragmentos
Acesse a página Instances. Na barra de navegação superior, selecione a região onde reside sua instância RDS e clique no ID da instância.
No painel de navegação à esquerda, escolha Autonomy Services > Diagnostics. Na página exibida, clique na aba Autonomy Center e, em seguida, clique em Autonomy Service Settings.
Na aba Autonomous Function Settings do painel Autonomous Function Management, ative o serviço de autonomia. Na aba Optimization and Throttling, selecione Automatic Fragment Recycling.
-
Configure os limiares e clique em OK.
ImportanteO DAS aciona a recuperação somente quando uma tabela atende a ambos os limiares simultaneamente, e apenas durante a janela de manutenção da instância.
Parâmetro
Descrição
Valores válidos
Padrão
Tablespace
Tamanho físico mínimo de uma tabela para recuperação. Valores altos podem prolongar o processo de recuperação.
5–100 GB
10 GB
Fragmentation Percentage
Taxa mínima de fragmentação necessária para acionar a recuperação
10%–99%
20%
Um valor menor para Tablespace inclui mais tabelas como alvo. Um valor menor para Fragmentation Percentage aciona a recuperação com maior frequência. Defina ambos os valores com base na sua capacidade de armazenamento e na sobrecarga de desempenho aceitável.
Exemplo: Com Tablespace definido como 5 GB e Fragmentation Percentage definido como 10%, o DAS recupera todas as tabelas com tamanho entre 5 GB e 100 GB e taxa de fragmentação igual ou superior a 10%.
-
(Opcional) Na etapa Select Alert Template, configure notificações de alerta para acompanhar o status da tarefa de recuperação. O DAS recomenda um modelo de alerta e adiciona as regras necessárias automaticamente. Siga as instruções na tela para concluir a configuração.
NotaSe sua instância RDS já tiver um modelo de alerta configurado, adicione as regras de eventos de autonomia necessárias a esse modelo conforme solicitado.
Para criar um novo modelo de alerta, consulte Configurar modelos de alerta e Configurar regras de alerta.
-
Na etapa Select Alert Contact Group, selecione um grupo de contatos. Para mais informações, consulte Gerenciar contatos de alerta.
Clique em Add Contact para adicionar um contato de alerta.
Clique em Create Contact Group para criar um grupo de contatos.
Para modificar ou remover um contato existente, localize-o na lista e clique em Edit ou Remove na coluna Actions.
Na etapa Associate with Resources, confirme os recursos associados.
Clique em Submit Configuration e confirme na caixa de diálogo exibida.
Próximos passos
Após ativar a recuperação automática de fragmentos, monitore o uso de armazenamento e a utilização de CPU da instância durante as janelas de manutenção para verificar se a recuperação foi concluída com êxito. Caso a recuperação seja ignorada repetidamente devido a falhas nas verificações, revise as condições específicas — especialmente as tendências de utilização de CPU e o espaço livre em disco disponível em relação às suas maiores tabelas.