Métricas de utilização da CPU

Esta página descreve as métricas de utilização da CPU que o Spanner fornece. Pode ver estas métricas na Google Cloud consola e na consola do Cloud Monitoring.

Utilização da CPU e prioridade das tarefas

O Spanner mede a utilização da CPU com base na origem e na prioridade da tarefa.

  • Origem: uma tarefa pode ser iniciada pelo utilizador ou pelo sistema.

  • Prioridade: a prioridade ajuda o Spanner a determinar que tarefas devem ser executadas primeiro. A prioridade das tarefas de sistema é predeterminada e não pode ser configurada. As tarefas do utilizador são executadas com prioridade elevada, salvo especificação em contrário. Muitos pedidos de dados, como read e executeSql, permitem-lhe especificar uma prioridade inferior para o pedido. Isto pode ser útil, por exemplo, quando está a executar consultas em lote, de manutenção ou analíticas que não têm SLOs de desempenho rigorosos.

    Geralmente, as tarefas de prioridade mais elevada são executadas antes das tarefas de prioridade mais baixa. O Spanner permite que as tarefas de prioridade elevada usem até 100% dos recursos de CPU disponíveis, mesmo que existam tarefas de prioridade inferior em concorrência. Embora as tarefas do sistema de prioridade inferior possam ser atrasadas a curto prazo, têm de ser executadas eventualmente. Por conseguinte, tem de aprovisionar a sua instância com capacidade de computação suficiente para processar todas as tarefas.

    Se não existirem tarefas de alta prioridade, o Spanner usa até 100% dos recursos de CPU disponíveis para concluir as tarefas de prioridade inferior mais rapidamente. Os picos na utilização em segundo plano não são sinal de um problema. As tarefas de prioridade mais baixa podem ceder às tarefas de prioridade mais alta, incluindo as tarefas do utilizador, quase instantaneamente.

A tabela seguinte mostra exemplos para cada tarefa:

Tarefas do utilizador Tarefas do sistema
Prioridade alta Inclui pedidos de dados, como read ou executeSql, em que não é especificada nenhuma prioridade ou PRIORITY_HIGH. Inclui a divisão de dados.
Prioridade média Inclui: Inclui:
Prioridade baixa Inclui pedidos de dados em que PRIORITY_LOW é especificado. Inclui:
  • Preencher um índice.
  • Preencher uma coluna gerada

Métricas disponíveis

O Spanner fornece as seguintes métricas para a utilização da CPU:

  • Utilização da CPU suavizada: uma média móvel da utilização total da CPU, como uma percentagem dos recursos da CPU da instância, para cada base de dados. Cada ponto de dados é uma média das 24 horas anteriores. Use esta métrica para criar alertas e analisar a utilização da CPU durante um longo período, por exemplo, 24 horas. Pode ver um gráfico para esta métrica na Google Cloud consola ou na consola do Cloud Monitoring como Média móvel de 24 horas.

  • Utilização da CPU por prioridade: a utilização da CPU, como uma percentagem dos recursos da CPU da instância, agrupada por prioridade, tarefas iniciadas pelo utilizador e tarefas iniciadas pelo sistema. Use esta métrica para criar alertas e analisar a utilização da CPU a um nível elevado. Pode ver um gráfico para esta métrica na Google Cloud consola ou na consola do Cloud Monitoring.

  • Utilização da CPU por tipo de operação: a utilização da CPU, como uma percentagem dos recursos da CPU da instância, agrupada por operações iniciadas pelo utilizador, como leituras, escritas e commits. Use esta métrica para obter uma discriminação detalhada da utilização da CPU e para resolver problemas adicionais, conforme explicado no artigo Investigar a utilização elevada da CPU. Pode criar um gráfico para esta métrica na consola do Cloud Monitoring.

    Também pode usar a consola do Cloud Monitoring para criar alertas para a utilização da CPU, conforme descrito mais adiante.

A tabela seguinte especifica as nossas recomendações para a utilização máxima da CPU para instâncias regionais, de duas regiões e de várias regiões. Estes números destinam-se a garantir que a sua instância tem capacidade de computação suficiente para continuar a publicar o seu tráfego em caso de perda de uma zona inteira (para instâncias regionais) ou de uma região inteira (para instâncias de região dupla e multirregião).

Métrica Máximo para instâncias regionais Máximo por região para instâncias de duas regiões e multirregionais
Total de prioridade elevada 65% 45%
Agregado suavizado de 24 horas 90% 90%

Para ajudar a manter-se abaixo dos máximos recomendados, crie alertas no Cloud Monitoring que monitorizem a utilização da CPU de alta prioridade e a utilização média da CPU durante 24 horas.

A utilização da CPU pode ter um impacto nas latências dos pedidos. A sobrecarga de um servidor de back-end individual aciona latências de pedidos mais elevadas. As aplicações devem executar testes de referência e monitorização ativa para verificar se o Spanner cumpre os respetivos requisitos de desempenho.

Assim, para aplicações sensíveis ao desempenho, pode ter de reduzir ainda mais a utilização da CPU através de técnicas descritas na secção seguinte.

Utilização da CPU superior a 100%

Em determinados casos, a utilização da CPU de uma instância do Spanner pode atingir mais de 100%. Isto significa que a instância está a usar mais recursos da CPU do que a quantidade configurada para a instância.

Os recursos da CPU acima de 100% podem ser usados para oferecer um desempenho melhor e mais previsível durante picos de utilização da CPU, por exemplo, causados por um aumento repentino no tráfego de pedidos.

Qualquer capacidade da CPU acima de 100% NÃO é garantida e não deve ser usada para operações normais da base de dados.

A execução de uma instância do Spanner perto ou acima da utilização de 100% da CPU durante um período prolongado tem um risco de degradação do desempenho e da latência da operação normal. Os recursos adicionais da CPU não são um mecanismo seguro no qual confiar para um desempenho consistente.

Os clientes não são faturados por esta utilização adicional da CPU.

Reduzir a utilização da CPU

Esta secção explica como reduzir a utilização da CPU de uma instância.

Em geral, recomendamos que aumente a capacidade de computação da sua instância como ponto de partida. Depois de aumentar a capacidade de computação, pode investigar e resolver as causas principais da elevada utilização da CPU.

Aumentar a capacidade de computação

Se exceder os máximos recomendados para a utilização da CPU, recomendamos vivamente que aumente a capacidade de computação da sua instância para que possa continuar a funcionar eficazmente. Se quiser automatizar este processo, pode criar uma aplicação que monitorize a utilização da CPU e, em seguida, aumente ou diminua a capacidade de computação conforme necessário, através do método UpdateInstance.

Para determinar a capacidade de computação de que precisa, considere a utilização de CPU de alta prioridade máxima, bem como a média suavizada de 24 horas. Atribua sempre capacidade de computação suficiente para manter a utilização da CPU abaixo dos máximos recomendados. Conforme descrito anteriormente, pode ter de atribuir capacidade de computação adicional para aplicações sensíveis ao desempenho (por exemplo, para acomodar picos de carga de trabalho).

Se não tiver capacidade de computação suficiente, o Spanner adia as tarefas por nível de prioridade. As tarefas do sistema de baixa prioridade, como a compactação da base de dados e a validação da alteração do esquema, podem ser adiadas em favor das tarefas do utilizador. No entanto, estas tarefas são essenciais para o bom funcionamento da sua instância, e o Spanner não pode adiá-las indefinidamente. Se o Spanner não conseguir concluir as respetivas tarefas de sistema de baixa prioridade num determinado período, da ordem de várias horas a um dia, devido a recursos de computação insuficientes, o Spanner pode aumentar a prioridade das tarefas de sistema. Esta alteração afeta o desempenho das tarefas do utilizador.

Investigar mais detalhadamente com ferramentas de introspeção

Se a métrica Utilização da CPU por tipo de operação indicar que um tipo de operação específico está a contribuir para uma elevada utilização da CPU, use as ferramentas de introspeção do Spanner para resolver o problema mais detalhadamente. Para mais informações, consulte o artigo Investigar a utilização elevada da CPU.

O que se segue?