Esta página descreve problemas conhecidos de alto uso de disco e oferece ajuda para solucionar problemas.
Os problemas conhecidos de alto uso do disco incluem:
- Uso alto de arquivos
Temporary_filesno MySQL 8.0 e versões mais recentes. - Alto uso de arquivos
Othersno MySQL 8.0 e versões anteriores.
O consumo de arquivos temporários é categorizado em arquivos tmp_data em versões anteriores ao MySQL 8.0.
Métrica de detalhamento do armazenamento do MySQL
A métrica principal usada para monitorar o uso detalhado do disco é cloudsql.googleapis.com/database/disk/bytes_used_by_data_type. Essa métrica fornece um detalhamento do uso do disco da instância por tipo de dados da seguinte forma:
| Tipo de dado | Definição |
|---|---|
Binlog |
Armazenamento usado pelos registros binários do MySQL, essencial para recuperação pontual e replicação. |
Cloudsql_mysql_audit_log |
Armazenamento usado pelo registro de auditoria do MySQL do Cloud SQL. |
Data |
Inclui os tablespaces InnoDB principais (arquivos .ibd) e o tablespace do sistema (ibdata1). |
General_log |
Armazenamento usado pelo registro de consultas gerais. |
General_tablespace |
Armazenamento usado pelo tablespace do sistema InnoDB, que consiste nos arquivos ibdata*. |
Last_sys_tablespace |
Armazenamento usado pelo último tablespace. |
Others |
Inclui arquivos internos do sistema. |
Redo_log |
Armazenamento consumido pelos registros redo InnoDB usados para recuperação de falhas. |
Relaylog |
Armazenamento usado por registros de retransmissão em uma instância de réplica durante a replicação. |
Slow_log |
Armazenamento usado pelo registro de consulta lenta se ele estiver ativado e armazenado em disco. |
Temporary files |
Armazenamento explicitamente rastreado para arquivos temporários criados pelo MySQL. |
Temporary_space |
Armazenamento usado pelos arquivos temporários do sistema operacional no diretório /tmp. |
Tmp_data |
Dados temporários criados pelo MySQL durante operações como classificação e junção. |
Undo_log |
Armazenamento usado pelos registros de desfazer. |
Como localizar arquivos nas categorias Temporary_files e Others
Consultas de longa duração (como operações complexas de JOIN, ORDER BY ou GROUP BY) criam arquivos temporários grandes no diretório do MySQL.
Para instâncias do MySQL que usam versões de manutenção lançadas a partir de
abril de 2026, esses arquivos temporários são informados explicitamente na categoria Temporary_files.
Em versões anteriores, os arquivos temporários eram informados na categoria Others.
Resolver problemas de uso elevado do disco
Para resolver problemas de uso alto do disco causados por arquivos temporários grandes, siga estas etapas:
- Identifique consultas ativas de longa duração.
- Mitigação imediata.
- Use insights de consulta.
- Faça uma análise retrospectiva.
- Otimizar consultas.
- Configure o monitoramento e os alertas.
Identificar consultas ativas de longa duração
Problemas de alto uso de disco são causados com mais frequência por consultas de longa duração (como operações complexas de JOIN, ORDER BY ou GROUP BY) que criam arquivos temporários enormes no diretório do MySQL. Esses arquivos temporários são categorizados em Temporary_files ou Others.
As instâncias do MySQL com novas versões de manutenção (versão r20260320.00_00 e mais recentes) têm a tabela INFORMATION_SCHEMA.CLOUDSQL_OPEN_TEMP_FILES, que mostra os arquivos temporários criados por consultas de longa duração e que não estão vinculados (ou seja, os arquivos existem, mas não estão vinculados ao processo do MySQL).
Use a consulta a seguir para receber a consulta ativa de longa duração:
SELECT
otf.fd, otf.size, p.id, p.info, p.user
FROM
INFORMATION_SCHEMA.CLOUDSQL_OPEN_TEMP_FILES otf
LEFT JOIN
performance_schema.processlist p
ON
otf.SESSION_ID = p.ID;
Exemplo de resposta:
+----+------------+------+----------------------------------+------+
| fd | size | id | info | user |
+----+------------+------+----------------------------------+------+
| 39 | 1670750208 | 8 | select * from t1 order by rand() | root |
| 40 | 1670750208 | 8 | select * from t1 order by rand() | root |
+----+------------+------+----------------------------------+------+
2 rows in set (0.00 sec)
Para as instâncias com versões de manutenção r20260320.00_00 e anteriores, use
a seguinte consulta para receber a consulta ativa de longa duração:
SHOW FULL PROCESSLIST;
Na saída, procure as operações que costumam usar arquivos temporários de disco:
- Operações grandes de
JOIN, principalmente sem índices adequados. - Operações complexas de
ORDER BYouGROUP BYem grandes conjuntos de resultados. - Grandes operações de
ALTER TABLE.
Mitigação imediata
Se uma consulta em execução for identificada como a origem do consumo de disco na investigação, encerre-a para liberar o espaço do arquivo temporário associado.
Para encerrar a consulta, execute o seguinte comando:
KILL PROCESS_ID;
Substitua PROCESS_ID pelo ID do processo da consulta:
Para versões de manutenção
r20260320ou mais recentes, é possível recuperar o valor PROCESS_ID na coluna SESSION_ID da tabelaINFORMATION_SCHEMA.CLOUDSQL_OPEN_TEMP_FILES.Para versões anteriores (versão
r20260117ou anterior) , recupere o valor PROCESS_ID da saída da operaçãoSHOW FULL PROCESSLIST.
Após a rescisão de uma consulta responsável pelo consumo elevado de disco por arquivos temporários, pode levar até 5 minutos para que essas mudanças sejam registradas nas métricas de uso do disco.
Usar Query Insights
Recomendamos usar o Query Insights para identificar e refinar consultas de desempenho lento.
Para mais informações, consulte Usar insights de consulta para melhorar o desempenho da consulta.
Fazer uma análise retrospectiva
Quando o pico de uso diminuir, analise os dados históricos para identificar a causa usando o seguinte:
Insights de consulta. Verifique se há consultas que podem ter criado arquivos temporários grandes. Analise as consultas listadas por resumo de consulta, incluindo métricas como tempo médio de execução, número de consultas e média de linhas verificadas e retornadas.
Slow_log. AtiveSlow_loge definalong_query_timecomo um limite adequado. Esse registro captura consultas de longa duração para análise e otimização.General_log. VerifiqueGeneral_log(se ativado) para consultas registradas durante o período do incidente que têm operaçõesJOINouSORTque podem ter gerado arquivos temporários grandes. Caso contrário, ative oGeneral_loge capture a consulta no próximo evento desse tipo.Métricas do Cloud Monitoring. Analise as seguintes métricas:
cloudsql.googleapis.com/database/mysql/tmp_disk_tables_created_count: rastreia o número de tabelas temporárias criadas no disco, que geralmente são a causa de arquivos grandes não vinculados.cloudsql.googleapis.com/database/mysql/handler_operations_count: rastreia o aumento no número de operações por volta desse horário.cloudsql.googleapis.com/database/mysql/innodb/active_trx_total_time: rastreia as transações ativas por um período mais longo.
Um aumento nessas métricas que coincide com o pico de uso do disco sugere fortemente que as consultas que geram tabelas temporárias grandes foram a causa principal.
Histórico de transações. Analise as seguintes métricas:
cloudsql.googleapis.com/database/mysql/innodb/history_list_length metric: um tamanho grande da lista de histórico pode ser causado por transações de longa duração que bloqueiam a limpeza dos registros de desfazer, o que também pode contribuir para problemas de uso do disco.cloudsql.googleapis.com/database/mysql/innodb/active_trx_longest_time: transações de longa duração durante o período de alto uso do disco.
Otimizar consultas
Depois que a análise de registros identificar as consultas específicas que causam picos de métricas, otimize ou reescreva-as para minimizar a geração de arquivos temporários extensos.
Para otimizar uma consulta, faça o seguinte:
- Adicione os índices adequados.
- Refatore junções ou operações de classificação complexas.
Para mais informações, consulte Ajuste de consultas.
Configurar o monitoramento e os alertas
Para evitar incidentes futuros causados pelo uso descontrolado do disco, principalmente devido a arquivos temporários gerados por consultas de longa duração, implemente o monitoramento e alertas proativos usando o Monitoring.
É possível criar alertas para métricas que indicam alto consumo de recursos ou padrões de consulta conhecidos por gerar arquivos temporários grandes.
| Nome da métrica | Descrição | Limite de alerta recomendado |
|---|---|---|
cloudsql.googleapis.com/database/disk/utilization |
A porcentagem do espaço em disco alocado utilizado.
Essa métrica monitora o uso geral da capacidade do disco. |
> 80% (sustentado por mais de 5 minutos) |
cloudsql.googleapis.com/database/disk/bytes_used |
O total de bytes de espaço em disco usado pela instância de banco de dados.
Essa métrica rastreia o crescimento absoluto do consumo de disco. |
Monitore a métrica database/disk/quota. |
Para saber como configurar alertas e monitoramento de métricas do Cloud SQL, consulte Visão geral dos alertas e Monitorar instâncias do Cloud SQL.