Utilização de métricas da CPU

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

Esta página descreve as métricas de uso da CPU fornecidas pelo Cloud Spanner. É possível 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 o uso 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 Spanner a determinar quais tarefas devem ser executadas primeiro. A prioridade das tarefas do sistema é predeterminada e não pode ser configurada. As tarefas do usuário são executadas em alta prioridade, a menos que especificado de outra forma. Muitas solicitações de dados, como read e executeSql, permitem especificar uma prioridade mais baixa. Isso pode ser útil, por exemplo, quando você está executando consultas de manutenção ou análise em lote que não têm SLOs de desempenho rigorosos.

    Em geral, as tarefas de maior prioridade são executadas antes das prioridades menores. O Spanner permite que tarefas de alta prioridade usem até 100% dos recursos de CPU disponíveis, mesmo que haja tarefas de prioridade mais baixa concorrentes. Embora tarefas de sistema de menor prioridade possam ser atrasadas a curto prazo, elas precisam ser executadas posteriormente. Portanto, é necessário provisionar sua instância com capacidade de computação suficiente para processar todas as tarefas.

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

Veja na tabela a seguir exemplos de cada tarefa:

Tarefas do usuário Tarefas do sistema
Alta prioridade

Inclui soluções de dados, como read ou executeSql, em que não haja prioridade ou PRIORITY_HIGH seja especificado.

Isso inclui a divisão de dados.

Prioridade média

Inclui:

  • solicitações de dados em que PRIORITY_MEDIUM é especificado
  • Leituras e gravações emitidas a partir de jobs de fluxo de dados (incluindo Importar/ Exportar).
  • Inclui:

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

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

    Inclui o preenchimento de um índice.

    Métricas disponíveis

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

    • Uso suavizado da CPU: 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 longo período de tempo, por exemplo, 24 horas. É possível visualizar um gráfico dessa métrica no Console do Google Cloud ou no Console do Cloud Monitoring como Média contínua de 24 horas.

    • Uso da CPU por prioridade: o uso da CPU como porcentagem dos recursos de CPU da instância, agrupado por prioridade, tarefas iniciadas pelo usuário e pelo sistema. Use essa métrica para criar alertas e analisar o uso da CPU de maneira abrangente. É possível ver um gráfico dessa métrica no Console do Google Cloud ou no Console do Cloud Monitoring.

    • Uso da CPU por tipo de operação: o uso da CPU como uma porcentagem dos recursos de CPU da instância, agrupado 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 outros problemas, conforme explicado em Como investigar o alto uso de CPU. É possível criar 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 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 que primeiro você aumente a capacidade de computação da instância. Depois de aumentar a capacidade de computação, é possível investigar e abordar as causas do alto uso da CPU.

    Como aumentar a capacidade de computação

    Se você exceder o uso máximo recomendado da CPU, recomendamos aumentar a capacidade de computação da instância para que ela continue funcionando de maneira eficaz. Se quiser automatizar esse processo, crie um aplicativo que monitore o uso da CPU. Depois, aumente e diminua a capacidade de computação necessária usando o método UpdateInstance.

    Para determinar a capacidade de computação necessária, considere o pico de uso da CPU por alta prioridade e a média suavizada de 24 horas. Sempre reserve capacidade de computação suficiente para manter o uso da CPU abaixo do nível máximo recomendado. Como descrito anteriormente, talvez seja necessário alocar capacidade de computação extra para aplicativos sensíveis ao desempenho (por exemplo, para acomodar picos de carga de trabalho).

    Se você não tiver capacidade de computação suficiente, o Spanner vai adiar 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 Spanner não pode adiá-las indefinidamente. Se o Spanner não conseguir concluir as tarefas de baixa prioridade do sistema em uma determinada janela de tempo (de várias horas até um dia), devido a recursos de computação insuficientes, o Spanner poderá aumentar a prioridade das tarefas do sistema. Essa alteração afeta o desempenho das tarefas do usuário.

    Como investigar mais com ferramentas de introspecção

    Se a métrica Utilização da CPU por tipo de operação indicar que um tipo específico de operação está contribuindo para a alta utilização da CPU, use as ferramentas de introdução do Spanner para resolver outros problemas. Para mais informações, consulte Como investigar o alto uso de CPU.

    A seguir