Utilização de métricas da CPU

Esta página descreve as métricas de uso da CPU fornecidas pelo Cloud Spanner. Você pode ver essas métricas no Console do Google Cloud e no Console do Cloud Monitoring.

Uso da CPU e prioridade da tarefa

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

  • Origem: uma tarefa pode ser iniciada pelo usuário ou pelo sistema.

  • Prioridade: a prioridade ajuda o Cloud Spanner a determinar quais tarefas devem ser executadas primeiro. A prioridade das tarefas do system é predeterminada e não pode ser configurada. Tarefas User são executadas em alta prioridade, a menos que especificado de outra forma. Muitas solicitações de dados, como read e executeSql, permitem que você especifique uma prioridade mais baixa para a solicitação. Isso pode ser útil, por exemplo, quando você executa consultas em lote, de manutenção ou analíticas que não têm SLOs de desempenho restrito.

    Tarefas de maior prioridade geralmente serão executadas antes das tarefas de prioridade menor, e o Cloud Spanner permitirá que tarefas de alta prioridade usem até 100% dos recursos de CPU disponíveis, mesmo que haja uma concorrência menor }priority. Embora tarefas de sistema de menor prioridade possam sofrer atrasos em curto prazo, elas precisam ser executadas em pouco tempo. Portanto, você precisa provisionar a instância com nós suficientes para lidar com todas as tarefas.

    Se não houver tarefas de alta prioridade, o Cloud Spanner usará até 100% dos recursos de CPU disponíveis para concluir as tarefas de menor prioridade mais rapidamente. Os picos no uso em segundo plano não são um sinal de problema. Tarefas de menor prioridade podem gerar tarefas de prioridade mais alta, inclusive tarefas de usuário, quase instantaneamente.

A tabela a seguir mostra exemplos de cada tarefa:

Tarefas do usuário Tarefas do sistema
Alta prioridade

Inclui solicitações de dados, como read ou executeSql, em que nenhuma prioridade ou PRIORITY_HIGH é especificada.

Inclui divisão de dados.

Prioridade média

Inclui:

  • dados em que PRIORITY_MEDIUM é especificado
  • leituras e gravações emitidas de jobs do Dataflow (incluindo Import/Export).
  • Inclui:

  • compactação do banco de dados
  • validação de alteração de esquema
  • a fase de otimização da restauração do banco de dados
  • Baixa prioridade

    Inclui solicitações de dados em que PRIORITY_LOW é especificado.

    Inclui:

  • criação do backup
  • preenchimento de um índice
  • Métricas disponíveis

    O Cloud Spanner fornece as seguintes métricas de uso da CPU:

    • Uso da CPU suavizada: uma média contínua do uso total da CPU como uma porcentagem dos recursos da CPU da instância para cada banco de dados. Cada ponto de dados é uma média das últimas 24 horas. Use essa métrica para criar alertas e analisar o uso da CPU durante um período longo, por exemplo, 24 horas. Veja um gráfico para essa métricano Console do Cloud ,no console do Cloud Monitoring enquantoMédia contínua de 24 horas para começar.

    • Uso da CPU por prioridade: a utilização da CPU, como uma porcentagem dos recursos da CPU da instância, agrupadas por prioridade, tarefas iniciadas pelo usuário e tarefas iniciadas pelo sistema. Use essa métrica para criar alertas e analisar o uso da CPU em um nível alto. É possível visualizar um gráfico para essa métrica no Console do Cloud ou no Console do Cloud Monitoring.

    • Utilização da CPU por tipo de operação: a utilização da CPU, como uma porcentagem dos recursos da CPU da instância, agrupadas por operações iniciadas pelo usuário, como leituras, gravações e confirmações. Use essa métrica para ver uma análise detalhada do uso da CPU e solucionar problemas ainda mais, conforme explicado em Como investigar a alta utilização da CPU. Crie um gráfico para essa métrica no console do Cloud Monitoring.

      Também é possível usar o console do Cloud Monitoring para criar alertas para o uso da CPU, conforme descrito abaixo.

    A tabela a seguir especifica as nossas recomendações para o uso máximo da CPU para instâncias de região única e de várias regiões. Esses números garantem que sua instância tenha capacidade computacional suficiente para continuar a veicular o tráfego em caso de perda de uma zona inteira (para instâncias de região única) ou de uma região inteira (para instâncias de várias regiões).

    Métrica Máximo para instâncias de região única Máximo por região para instâncias de várias regiões
    Total de alta prioridade 65% 45%
    Agregado suavizado de 24 horas 90% 90%

    Para ajudar você a ficar abaixo dos valores máximos recomendados, crie alertas no Cloud Monitoring que rastreiem a utilização de CPU de alta prioridade e a utilização média da CPU por 24 horas.

    O uso da CPU pode afetar as latências de solicitações. A sobrecarga de um servidor de back-end individual é um gatilho para latências de solicitação mais altas. Os aplicativos precisam executar comparações e monitoramento ativo para verificar se o Cloud Spanner atende aos requisitos de desempenho.

    Assim, para aplicativos sensíveis ao desempenho, talvez seja necessário reduzir ainda mais o uso da CPU com as técnicas descritas na próxima seção.

    Redução do uso da CPU

    Esta seção explica como reduzir o uso da CPU de uma instância.

    Em geral, recomendamos a adição de nós à instância como ponto de partida. Depois de adicionar nós, é possível investigar e lidar com as principais causas do alto uso da CPU.

    Como adicionar nós

    Se você ultrapassar os limites máximos recomendados de uso da CPU, adicione nós à instância para que ela possa continuar operando de maneira eficaz. Se quiser automatizar esse processo, crie um aplicativo que monitore o uso da CPU. Depois, adicione e remova os nós conforme necessário usando o método UpdateInstance.

    Para determinar quantos nós são necessários, considere o pico de uso da CPU de alta prioridade, bem como a média ajustada de 24 horas. Sempre reserve nós suficientes para manter o uso da CPU abaixo do nível máximo recomendado. Como descrito anteriormente, talvez seja necessário alocar nós adicionais para aplicativos sensíveis ao desempenho (por exemplo, para acomodar picos de carga de trabalho).

    Se não tiver nós suficientes, o Cloud Spanner organizará as tarefas por nível de prioridade. Tarefas de sistema de baixa prioridade, como compactação de banco de dados e validação de alteração de esquema, podem ser adiadas, dando lugar a tarefas do usuário. No entanto, essas tarefas são essenciais para a integridade da instância, e o Cloud Spanner não pode adiá-las indefinidamente. Se o Cloud Spanner não conseguir concluir as tarefas de baixa prioridade do sistema em uma determinada janela de tempo, entre várias horas a um dia, devido a recursos de computação insuficientes, ele poderá aumentar a prioridade dessas tarefas. Essa alteração afeta o desempenho das tarefas do usuário.

    Como investir mais com as ferramentas de introspecção

    Se a métrica Uso da CPU por tipo de operação indica que um determinado tipo de operação está contribuindo para uma alta utilização da CPU, use as ferramentas de introspecção do Cloud Spanner para solucionar problemas ainda mais. Para mais informações, consulte Como investigar a alta utilização da CPU.

    A seguir