Nesta página, descrevemos as métricas de utilização da CPU fornecidas pelo Spanner. Você pode visualizar essas métricas no console do Google Cloud e no console do Cloud Monitoring.
Uso da CPU e prioridade da tarefa
O 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 determina 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, tarefas de maior prioridade são executadas antes tarefas de menor prioridade. O Spanner permite que tarefas de alta prioridade utilizam até 100% dos recursos de CPU disponíveis, mesmo tarefas de menor prioridade. Embora as tarefas do sistema de menor prioridade possam ser atrasadas no no curto prazo, elas precisam ser executadas em algum momento. Portanto, você deve provisionar sua instância com capacidade de computação suficiente para lidar com todas as tarefas.
Se não houver tarefas de alta prioridade, o Spanner vai 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.
A tabela a seguir mostra exemplos para cada tarefa:
Tarefas do usuário | Tarefas do sistema | |
---|---|---|
Prioridade alta | Inclui solicitações de dados, como leitura ou executeSql, em que nenhuma prioridade PRIORITY_HIGH é especificado. | Isso inclui a divisão de dados. |
Prioridade média |
Inclui:
|
Inclui:
|
Prioridade baixa | Inclui solicitações de dados em que PRIORITY_LOW é especificado. |
Inclui:
|
Métricas disponíveis
O Spanner fornece as seguintes métricas de uso 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. Você pode consultar um gráfico para essa métrica no console do Google Cloud ou no Console do Cloud Monitoring como Média contínua 24 por hora.
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 visualizar um gráfico dessa métrica no 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.
Você também pode usar o console do Cloud Monitoring para criar alertas de utilização, conforme descrito posteriormente.
Alertas para alto uso da CPU
A tabela a seguir especifica nossas recomendações para o uso máximo da CPU em instâncias regionais, birregionais e multirregionais. Esses números servem para garantir que a instância tenha capacidade de computação suficiente. para continuar veiculando seu tráfego caso a zona inteira seja perdida (para instâncias regionais) ou uma região inteira (para locais birregionais e multirregionais) instâncias de VM).
Métrica | Máximo para instâncias regionais | Máximo por região para instâncias multirregionais e birregionais |
---|---|---|
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. Aplicativos deve executar comparativos de mercado e monitoramento ativo para verificar se O 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.
Uso da CPU acima de 100%
Em certos casos, o uso da CPU de uma instância do Spanner pode atingir acima de 100%. Isso significa que a instância está usando mais recursos de CPU do que o valor configurado para a instância.
Recursos de CPU acima de 100% podem ser usados para oferecer recursos desempenho durante picos de utilização da CPU, por exemplo, causados por problemas repentinos de aumento no tráfego de solicitações.
Qualquer capacidade de CPU acima de 100% NÃO é garantida e não deve ser usada para operações normais do banco de dados.
Executar uma instância do Spanner perto ou acima de 100% de uso da CPU durante um período períodos prolongados tem risco de prejudicar o desempenho normal da operação e latência de rede. Recursos extras de CPU não são um mecanismo seguro desempenho consistente.
Os clientes não são cobrados por esse uso adicional da CPU.
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 adia tarefas 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 adiar indefinidamente. Se o Spanner não conseguir concluir o sistema de baixa prioridade tarefas em um determinado período de tempo (de várias horas a um dia) devido a recursos de computação insuficientes, o Spanner pode aumentar a prioridade as 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 determinado tipo de operação contribui para a alta utilização da CPU, use o modelo ferramentas de introspecção para resolver mais problemas. Para mais informações, consulte Como investigar o alto uso de CPU.
A seguir
- Monitore a instância com o console do Google Cloud ou no console do Cloud Monitoring.
- Criar alertas para o uso da CPU do Spanner.
- Saiba como alterar a capacidade de computação de um instância do Spanner.
Saiba como encontrar correlações entre alta latência e outras métricas.
Para saber como resolver problemas de alto uso de CPU causados por um tipo de operação específico, consulte Como investigar o alto uso de CPU.