Monitore seus créditos da CPU para instâncias expansíveis - Amazon Elastic Compute Cloud

Monitore seus créditos da CPU para instâncias expansíveis

O EC2 envia métricas para o Amazon CloudWatch. Você pode ver as métricas de crédito da CPU nas métricas do Amazon EC2 por instância do console do CloudWatch ou usando a AWS CLI para listar as métricas de cada instância. Para ter mais informações, consulte Listar métricas usando o console e Listar métricas usando o AWS CLI.

Métricas adicionais do CloudWatch para instâncias expansíveis

As instâncias expansíveis têm estas métricas adicionais do CloudWatch, que são atualizadas a cada cinco minutos:

  • CPUCreditUsage – O número de créditos de CPU gastos durante o período de medição.

  • CPUCreditBalance – o número de créditos de CPU que uma instância acumulou. Esse saldo é esgotado quando a CPU apresenta expansãos e os créditos de CPU são gastos com mais rapidez do que são ganhos.

  • CPUSurplusCreditBalance – O número de créditos de CPU excedentes gastos para sustentar a utilização de CPU quando o valor de CPUCreditBalance for zero.

  • CPUSurplusCreditsCharged – o número de créditos de CPU excedentes que ultrapassam o número máximo de créditos de CPU que podem ser ganhos em um período de 24 horas, resultando em uma cobrança adicional.

Essas duas últimas métricas aplicam-se somente a instâncias configuradas como unlimited.

A tabela a seguir descreve as métricas do CloudWatch para instâncias expansíveis. Para ter mais informações, consulte Listar as métricas disponíveis do CloudWatch para as instâncias.

Métrica Descrição
CPUCreditUsage

O número de créditos de CPU gastos pela instância por utilização de CPU. Um crédito de CPU equivale a um vCPU em execução em 100% de utilização por um minuto ou a uma combinação equivalente de vCPUs, utilização e tempo (por exemplo, um vCPU em execução a 50% de utilização por dois minutos ou dois vCPUs em execução a 25% de utilização por dois minutos).

As métricas de crédito de CPU estão disponíveis a uma frequência de apenas 5 minutos. Se você especificar um período de mais cinco minutos, use a estatística Sum em vez da estatística Average.

Unidades: créditos (minutos de vCPU)

CPUCreditBalance

O número de créditos ganhos de CPU que uma instância acumulou desde que foi executada ou iniciada. Para a T2 Padrão, o CPUCreditBalance também inclui o número de créditos de execução que foram acumulados.

Os créditos são acumulados no saldo de créditos após terem sido ganhos e são removidos do saldo de créditos quando são gastos. O saldo de crédito tem um limite máximo, determinado pelo tamanho da instância. Depois que o limite for atingido, todos os novos créditos ganhos serão descartados. Para a T2 Padrão, os créditos de execução não são contabilizados para o limite.

Os créditos do CPUCreditBalance são disponibilizados para que a instância gaste e apresente intermitência com uma utilização de CPU acima da linha de base.

Quando uma instância está em execução, os créditos do CPUCreditBalance não expiram. Quando uma instância T4g, T3a ou T3 é interrompida, o valor de CPUCreditBalance persiste por sete dias. Consequentemente, todos os créditos acumulados são perdidos. Quando uma instância T2 é interrompida, o valor CPUCreditBalance não persiste, e todos os créditos acumulados são perdidos.

As métricas de crédito de CPU estão disponíveis a uma frequência de apenas 5 minutos.

Unidades: créditos (minutos de vCPU)

CPUSurplusCreditBalance

O número de créditos excedentes gastos por uma instância unlimited quando seu valor CPUCreditBalance é zero.

O valor CPUSurplusCreditBalance é pago pelos créditos de CPU ganhos. Se o número de créditos excedentes ultrapassar o número máximo de créditos que a instância pode ganhar em um período de 24 horas, os créditos excedentes gastos acima do limite máximo incorrerão em uma taxa adicional.

Unidades: créditos (minutos de vCPU)

CPUSurplusCreditsCharged

O número de créditos excedentes gastos que não são pagos pelos créditos de CPU ganhos e que, portanto, incorrem em uma cobrança adicional.

Os créditos excedentes gastos são cobrados quando uma das seguintes situações ocorre:

  • Os créditos excedentes ultrapassaram o número máximo de créditos que a instância pode obter em um período de 24 horas. Os créditos excedentes gastos acima do limite máximo são cobrados no final da hora.

  • A instância é interrompida ou encerrada.

  • A instância é alterada de unlimited para standard.

Unidades: créditos (minutos de vCPU)

Calcular o uso de crédito da CPU

O uso de créditos de CPU de instâncias é calculado por meio das métricas de instância do CloudWatch descritas na tabela anterior.

O Amazon EC2 envia as métricas ao CloudWatch a cada cinco minutos. Uma referência ao valor anterior de uma métrica em qualquer momento implica o valor anterior da métrica, enviado cinco minutos atrás.

Calcular uso de créditos de CPU de instâncias padrão

  • O saldo de crédito de CPU aumentará se a utilização de CPU ficar abaixo da linha de base, quando os créditos gastos forem inferiores aos créditos ganhos no intervalo anterior de cinco minutos.

  • O saldo de crédito de CPU diminuirá se a utilização de CPU ficar acima da linha de base, quando os créditos gastos forem superiores aos créditos ganhos no intervalo anterior de cinco minutos.

Matematicamente, isso é capturado pela equação a seguir:

CPUCreditBalance = prior CPUCreditBalance + [Credits earned per hour * (5/60) - CPUCreditUsage]

O tamanho da instância determina o número de créditos que a instância pode ganhar por hora e o número de créditos ganhos que ela pode acumular no saldo de créditos. Para obter informações sobre o número de créditos ganhos por hora e o limite de saldo de créditos para cada tamanho de instância, consulte a Tabela de créditos.

Exemplo

Este exemplo usa uma instância t3.nano. Para calcular o valor CPUCreditBalance da instância, use a equação anterior, da seguinte maneira:

  • CPUCreditBalance – O saldo de crédito atual a ser calculado.

  • prior CPUCreditBalance – O saldo de crédito de cinco minutos atrás. Neste exemplo, a instância acumulou dois créditos.

  • Credits earned per hour – A instância t3.nano ganha seis créditos por hora.

  • 5/60 – Representa o intervalo de cinco minutos entre a publicação da métrica do CloudWatch. Multiplique os créditos ganhos a cada hora por 5/60 (cinco minutos) para obter o número de créditos que a instância ganhou nos últimos cinco minutos. A instância t3.nano ganha 0,5 crédito a cada cinco minutos.

  • CPUCreditUsage – Quantos créditos a instância gastou nos últimos cinco minutos. Neste exemplo, a instância gastou um crédito nos últimos cinco minutos.

Com esses valores, é possível calcular o valor CPUCreditBalance:

CPUCreditBalance = 2 + [0.5 - 1] = 1.5

Cálculo de uso de créditos de CPU de instâncias ilimitadas

Quando uma instância expansível precisa ter uma expansão acima da linha de base, ela sempre gasta os créditos acumulados antes dos créditos excedentes. Quando ela esgotar o saldo de crédito de CPU acumulado, poderá gastar os créditos excedentes para expansão de CPU enquanto precisar. Quando a utilização de CPU ficar abaixo da linha de base, os créditos excedentes sempre serão pagos antes que a instância acumule créditos ganhos.

Usamos o termo Adjusted balance nas equações a seguir para refletir a atividade que ocorre nesse intervalo de cinco minutos. Usamos esse valor para atingir os valores das métricas do CPUCreditBalance de CPUSurplusCreditBalance e CloudWatch.

Adjusted balance = [prior CPUCreditBalance - prior CPUSurplusCreditBalance] + [Credits earned per hour * (5/60) - CPUCreditUsage]

O valor 0 em Adjusted balance indica que a instância gastou todos os créditos ganhos para expansão e nenhum crédito excedente foi gasto. Consequentemente, CPUCreditBalance e CPUSurplusCreditBalance são definidos como 0.

Um valor Adjusted balance positivo indica que a instância acumulou créditos ganhos, e os créditos excedentes anteriores (se houver) foram pagos. Consequentemente, o valor de Adjusted balance é atribuído a CPUCreditBalance, e CPUSurplusCreditBalance é definido como 0. O tamanho da instância determina o número máximo de créditos que ela pode acumular.

CPUCreditBalance = min [max earned credit balance, Adjusted balance] CPUSurplusCreditBalance = 0

O valor Adjusted balance negativo indica que a instância gastou todos os créditos ganhos acumulados e também os créditos excedentes gastos para expansão. Consequentemente, o valor de Adjusted balance é atribuído a CPUSurplusCreditBalance, e CPUCreditBalance é definido como 0. Novamente, o tamanho da instância determina o número máximo de créditos que ela pode acumular.

CPUSurplusCreditBalance = min [max earned credit balance, -Adjusted balance] CPUCreditBalance = 0

Se os créditos excedentes gastos ultrapassarem o máximo de créditos que a instância pode acumular, o saldo de créditos excedentes será definido como o número máximo, conforme exibido na equação anterior. Os créditos excedentes restantes serão cobrados conforme representados pela métrica CPUSurplusCreditsCharged.

CPUSurplusCreditsCharged = max [-Adjusted balance - max earned credit balance, 0]

Por fim, quando a instância for encerrada, todos os créditos excedentes monitorados pelo CPUSurplusCreditBalance serão cobrados. Se a instância for alterada de unlimited para standard, todo o CPUSurplusCreditBalance restante também será cobrado.