Métricas de utilização do armazenamento

Esta página descreve as métricas de uso do armazenamento fornecidas pelo Spanner.

Por padrão, os dados são armazenados em unidades de estado sólido (SSD). É possível escolher se os dados serão armazenados em SSDs ou unidades de disco rígido (HDDs) usando o armazenamento em camadas. Para mais informações, consulte Visão geral do armazenamento em camadas.

Métricas de armazenamento

O Spanner fornece as seguintes métricas de armazenamento:

  • Armazenamento total do banco de dados: a quantidade de dados armazenada no banco de dados ou nos bancos de dados na instância. Isso está sujeito ao limite de armazenamento.
  • Armazenamento de backup total: a quantidade de dados armazenada pelos backups associados à instância ou ao banco de dados. O armazenamento de backups é armazenado e faturado separadamente, e não há limite para o valor que pode ser armazenado.

É possível visualizar os gráficos dessas métricas no Google Cloud console ou no console do Cloud Monitoring.

Além disso, a utilização do armazenamento do banco de dados é mostrada nas páginas Instâncias e Detalhes da instância no Google Cloud console.

Acessar a página "Instâncias"

Armazenamento multiversão

Se você usa as métricas de armazenamento anteriores para verificar o tamanho dos dados com frequência, ocasionalmente pode encontrar resultados contrários às suas expectativas. Por exemplo, o armazenamento total informado do banco de dados pode diminuir em uma quantidade considerável, mesmo que você não tenha removido dados recentemente. Por outro lado, o tamanho pode permanecer relativamente inalterado logo após uma exclusão significativa.

Esses efeitos decorrem do suporte do Spanner ao armazenamento multiversão. O armazenamento multiversão mantém todos os dados excluídos ou substituídos no armazenamento e disponíveis por um período limitado para ativar recursos que permitem ler valores de dados anteriores, como leituras obsoletas e recuperação pontual. A execução de uma grande exclusão de dados não é refletida imediatamente nas métricas de armazenamento do banco de dados. Da mesma forma, uma queda aparentemente não solicitada no tamanho total de um banco de dados provavelmente significa que o processo regular de compactação de dados do Spanner limpou recentemente um grande conjunto de dados que foi excluído ou substituído há vários dias.

O Spanner garante a disponibilidade contínua de dados excluídos ou substituídos para o intervalo definido pela version_retention_period opção (uma hora, por padrão). Ele executa automaticamente um processo em segundo plano a cada vários dias que remove permanentemente todos os dados obsoletos mais antigos que esse intervalo de retenção de versão. Para remover dados obsoletos permanentemente mais rápido, você pode acionar manualmente uma compactação principal.

Efeitos da divisão e mesclagem

Durante períodos de alta carga ou pontos de acesso, o Spanner usa divisão e mesclagem para distribuir a utilização da CPU entre os recursos de computação provisionados. Essas operações de movimentação de dados em segundo plano podem acontecer mesmo que você não esteja inserindo ou modificando dados.

Um efeito colateral dessa otimização é um aumento temporário na utilização do armazenamento. Para os dados que estão sendo movidos, pode haver até duas cópias dos dados originais retidas em um determinado momento. Essa sobrecarga não cresce indefinidamente. Ao longo do ciclo de compactação, o Spanner reduz as divisões e descarta as cópias extras de dados. Essa sobrecarga de armazenamento geralmente se estabiliza em duas semanas. Também é possível acionar manualmente uma compactação principal para descartar cópias extras imediatamente.

Estatísticas de armazenamento

Todos os dados ingeridos no Spanner normalmente aparecem nas estatísticas de armazenamento em questão de minutos. No entanto, em alguns casos, mesmo que os dados estejam acessíveis para leitura (e duráveis por técnicas como o registro de gravação antecipada), eles vão demorar mais para aparecer nas estatísticas de utilização do armazenamento, até vários dias.

Isso acontece porque todos os dados ingeridos (além de uma cópia registrada durante a confirmação para fins de durabilidade e recuperação) residem temporariamente na memória antes de serem gravados no armazenamento físico em segundo plano. A quantidade de dados que podem e vão residir na memória e o tempo que eles vão viver na memória antes de serem gravados no armazenamento físico dependem do tamanho da computação e do tamanho e desempenho da carga de trabalho.

Criar alertas de armazenamento

É possível criar alertas de armazenamento no console do Cloud Monitoring. Também oferecemos uma maneira simples de criar um alerta de armazenamento de banco de dados diretamente no Google Cloud console. O link Criar política de alertas no gráfico (consulte a captura de tela) leva à página de criação de alertas no console do Cloud Monitoring e preenche automaticamente os campos relevantes.

Tela de métricas do Spanner no console com um botão chamado "Criar política de alertas".

Recomendamos manter o armazenamento total do banco de dados abaixo do limite de armazenamento. Isso garante que o Spanner tenha espaço suficiente para operar normalmente e realizar manutenção de rotina nos dados.

Se você estiver se aproximando do limite, o Spanner poderá impedir que você execute operações que excedam o limite, como:

  • Restaurar um banco de dados a partir de um backup.
  • Modificar o esquema do banco de dados (por exemplo, adicionar um índice).
  • Reduzir a capacidade de computação da instância.

Se você estiver acima do limite de armazenamento, o Spanner tentará operar normalmente, mas o desempenho ou a falha poderão ser prejudicados devido à pressão de recursos. Se você se aproximar ou exceder o máximo recomendado, Google Cloud o console vai mostrar um aviso com a mensagem "A instância atingiu a capacidade máxima de armazenamento e pode apresentar uma degradação no desempenho" ao mostrar a instância afetada.

Também é possível criar alertas no Cloud Monitoring para notificar você.

Reduzir a utilização do armazenamento do banco de dados

Para reduzir a utilização do armazenamento de banco de dados de uma instância, é possível:

Em geral, recomendamos que você adicione capacidade de computação à instância como ponto de partida. Depois de adicionar a capacidade de computação, é possível investigar e atender às causas raiz da alta utilização de armazenamento.

Para automatizar esse processo, crie um aplicativo que monitore a utilização do armazenamento do banco de dados e adicione e remova a capacidade de computação conforme necessário. Para isso, use o método UpdateInstance.

A seguir