VPN EC2 burstable: créditos de CPU Standard ou Unlimited?
Um modo limita na linha de base, o outro continua e pode cobrar você. Faça a aritmética dos créditos antes que uma instância pequena se torne o seu gateway.
Um pequeno gateway VPN passa num teste de velocidade, parece bem e depois degrada após o almoço. A instância não estava mentindo durante o teste; ela estava gastando créditos que ganhou enquanto ociosa. Instâncias burstable são projetadas exatamente para isso, o que torna um benchmark curto um mau preditor de uma tarde inteira de transferências. Os dois modos de crédito também falham de formas diferentes, e escolher entre eles é a decisão real.
De onde o teste de velocidade emprestou
Um crédito de CPU é uma vCPU rodando com utilização plena por um minuto. Uma instância burstable ganha créditos na sua taxa de linha de base e os gasta quando excede essa linha de base. Uma noite ociosa acumula um saldo; uma manhã ocupada o consome.
É por isso que o primeiro teste parece bom. A instância tinha um orçamento guardado, gastou-o em trabalho de criptografia e relatou uma taxa saudável. Nada no resultado diz o que acontece quando o saldo chega a zero. O benchmark mediu um burst, e um burst é o que a instância foi projetada para entregar. Ele nunca mediu o estado estacionário do qual você está prestes a depender.
A aritmética que você precisa fazer
As entradas são a percentagem de linha de base por vCPU, o número de vCPU, o saldo acumulado e a carga que você espera. Apenas como ilustração, tome uma instância hipotética com duas vCPU, linha de base de dez por cento por vCPU, 24 créditos acumulados e uma vCPU totalmente ocupada enquanto a outra está ociosa. Esses números são entradas declaradas, não a especificação de um tamanho de instância específico.
Earn rate: 2 x 10% x 60 = 12 credits/hour
Workload usage: 1 x 100% x 60 = 60 credits/hour
Net draw: 60 - 12 = 48 credits/hour
Accrued budget: 24 / 48 = 0.5 hoursSob essas premissas, o orçamento acaba em cerca de meia hora. Trabalho de fundo, carga variável e a própria contabilidade da instância movem o resultado, e nada disso prevê o throughput da VPN. O que ele prevê é quando a restrição sustentada começa a pesar.
Note também a segunda leitura: uma vCPU ocupada é aproximadamente metade da capacidade total de CPU neste exemplo. Uma percentagem global moderada pode esconder um núcleo saturado, então observe o comportamento por núcleo junto com os números de crédito.
Standard e Unlimited: o mesmo zero, significados diferentes
No modo Standard, um saldo esgotado restringe a CPU sustentada em direção à linha de base. A instância continua funcionando, apenas mais devagar, e o teto é previsível. No modo Unlimited, a instância pode continuar a recorrer a créditos excedentes depois de o saldo chegar a zero, e o uso sustentado acima da linha de base pode gerar cobranças segundo as regras de contabilidade do serviço.
Portanto, um CPUCreditBalance de zero significa limitação num modo e possível faturação no outro. Essa é toda a comparação, e é por isso que ler a métrica sem ler o modo é enganador.
O excedente também não é uma fatura simples por crédito. A operação posterior abaixo da linha de base pode abater o uso excedente, e aplicam-se outras condições de cobrança. Verifique o modo configurado e as regras atuais do serviço em vez de confiar numa alegação de nível gratuito de um post antigo de blog.
O que observar durante trabalho real
Registe CPUCreditUsage e CPUCreditBalance ao lado da duração e da taxa da transferência. No Unlimited, acrescente CPUSurplusCreditBalance e CPUSurplusCreditsCharged. O guia da AWS de monitorização de créditos de CPU explica o que cada um reporta e com que frequência.
Teste novamente com concorrência representativa e duração suficiente para ver a tendência, e registe o saldo inicial. Uma manhã ociosa e uma tarde ocupada não são a mesma experiência, mesmo com comandos idênticos.
Limites que não são CPU
A largura de banda da rede tem a sua própria linha de base e comportamento de burst, e os limites de taxa de pacotes ou de conexões podem apertar antes da CPU. A memória importa quando a implementação de VPN mantém estado por conexão, e uma instância pequena pode ficar sem ela muito antes de ficar sem créditos.
Um saldo de créditos saudável prova, portanto, uma coisa: o orçamento de CPU não é a restrição atual. Não diz nada sobre o caminho de rede, e não diz nada sobre o que acontece com o dobro da concorrência. Observe as métricas de rede na mesma janela das métricas de crédito, para que uma queda de throughput tenha uma causa provável em vez de uma teoria.
Escolher uma linha de base de propósito
Use a carga sustentada medida para escolher uma linha de base, ou aceite o bursting explicitamente e orçamente para ele. Ambas as respostas são defensáveis quando escritas; nenhuma é defensável quando inferida do streaming de vídeo bem-sucedido de outra pessoa.
Se o gateway suporta carga, trate o modo de crédito como parte do plano de capacidade em vez de um padrão que nunca abriu. O modo que escolher é a falha que pode prever.