O que constitui a CPU "inativa" durante o cálculo do crédito da CPU em T2?

9

A documentação para os tipos "burstable" do EC2 T2 diz:

O desempenho da linha de base e a capacidade de explosão são controlados por créditos de CPU. Cada instância T2 recebe continuamente créditos da CPU a uma taxa definida, dependendo do tamanho da instância. As instâncias T2 acumulam créditos de CPU quando estão ociosas e usam créditos de CPU quando estão ativas. Um crédito de CPU fornece o desempenho de um núcleo completo da CPU por um minuto.

O que eu não entendo é o que significa ocioso ? Todas as instâncias usam alguma CPU> 0%; portanto, há um número de uso da CPU sob o qual a instância é considerada "inativa"?

Surpreendentemente, dado o uso liberal desse termo, não consigo encontrar uma definição de "ocioso" em lugar nenhum.

Dan Gravell
fonte

Respostas:

7

Boa pergunta, a documentação do Amazon EC2 para créditos de CPU em instâncias T2 pode ser mais precisa aqui - a publicação introdutória do blog Novas instâncias EC2 de baixo custo com desempenho explosivo fornece uma explicação melhor, veja a tabela ao meio:

A coluna denominada "Desempenho da linha de base" indica a porcentagem de desempenho de núcleo único da CPU física subjacente alocada à instância. Por exemplo, uma instância t2.small tem acesso a 20% de um único núcleo de um processador Intel Xeon executando a 2,5 GHz (até 3,3 GHz no modo Turbo). Um t2.medium tem acesso a 40% do desempenho de um único núcleo, que você (ou seu sistema operacional, para ser um pouco mais preciso) pode usar em um ou ambos os núcleos, conforme determinado pela demanda.

A coluna rotulada "CPU Credits / Hour" indica a taxa de créditos de CPU que a instância T2 recebe a cada hora. Os créditos de CPU são acumulados quando a instância não usa sua alocação de linha de base da CPU e são gastos quando a instância está ativa . Os créditos de CPU não utilizados são armazenados por até 24 horas. [ênfase minha]

Steffen Opel
fonte
4
Ótimo, no caso do T2.small, por exemplo, que tem uma linha de base de 20% da CPU, quando está abaixo de 20%, estamos ganhando a uma taxa fixa, quando está acima de estar gastando a uma taxa variável de acordo com os documentos. aws.amazon.com/AWSEC2/latest/UserGuide/…
Dan Gravell
1
Exatamente - essa abordagem transparente (incluindo métricas apropriadas do CloudWatch ) é uma melhoria bastante significativa e competitiva em relação ao modelo de otimização anterior para as t1.microinstâncias, respectivamente, infames .
Steffen Opel
@DanGravell, você ganha a uma taxa variável "Por exemplo, se uma instância t2.small tivesse uma utilização de CPU de 5% por hora, ela usaria 3 créditos de CPU (5% de 60 minutos), mas teria ganho 12 créditos de CPU durante a hora, então a diferença de 9 créditos CPU seria adicionado ao saldo de crédito CPU"
Paul Draper
2

"inativo" é notoriamente difícil de definir em geral para servidores Linux. Em geral, ocioso deve ser qualquer tempo não gasto em modo de usuário, sistema, modo de baixa prioridade, espera / interrupção de E / S - com a provisão especial que, dada o tipo certo de carga de trabalho, o tempo de espera de E / S poderia ser convertido no horário do modo de usuário (para outro processo).

No entanto, na questão de inatividade da AWS t2, isso não se aplica. Também não foi válido para t1 (devido ao tempo "roubado"), mas mesmo isso não explica o comportamento de t2. Encontrei cenários em que o tempo ocioso (conforme relatado pelo Linux top e pelo AWS CloudWatch) está muito acima dos níveis de limite documentados, mas a instância está perdendo créditos de CPU em vez de obtê-los. Acredito que este seja um erro contábil do lado da Amazon e, até que seja corrigido, tentar demais entender como a utilização e a ociosidade da CPU são definidas será uma perda de tempo.

Publiquei alguns gráficos ilustrativos nos fóruns de suporte da AWS, onde espero que eles respondam. https://forums.aws.amazon.com/thread.jspa?messageID=568026#568026

osma
fonte
Podemos estar tendo o mesmo problema em uma instância média para processamento de mensagens. Créditos acumulados linearmente sem nenhum uso, e agora implantados, há uma queda gradual, mesmo com a utilização máxima em intervalos de 5 minutos inferiores a 1%. Pode ser que o limite ocioso seja uma pequena fração de 1%, mas isso não tornaria as instâncias úteis. As respostas da Amazon ao seu ticket e outras sugerem que o cálculo de créditos não está funcionando como o esperado.
Nick
A equipe da Amazon postou uma explicação do sistema, que parece ser mais complexa do que a documentação leva a pensar: não apenas existe um saldo máximo de créditos para cada tipo de instância T2, mas os créditos ganhos 24 horas atrás expiram do saldo. Ou seja, um t2.small ganhará 12 créditos por hora, manterá um saldo máximo de 288 créditos, mas TAMBÉM todos os créditos obtidos 24 horas atrás serão subtraídos do saldo. Isso significa que instâncias com mais de 24 horas perderão créditos mais rapidamente do que você esperaria e o saldo a longo prazo provavelmente estará mais próximo do valor inicial do que do máximo.
osma 28/09
@osama obrigado por adicionar isso. A partir das paradas, suspeito que ainda há mais , mas está funcionando para nós no momento, o que importa :) Aumentamos a carga média em uma mídia desde sexta-feira e estamos assistindo para ver o que acontece agora.
Nick
0

Isso é algo como abaixo

Se você estiver usando uma micro instância que roda no máximo 10% de núcleo único. suponha que cheguem os tempos em que o servidor esteja consumindo 5% de núcleo único; portanto, considere o restante de 5% do poder de computação como ocioso. Esses 5% continuam acumulando fora do curso por apenas 24 horas. Agora, se você tem essa acumulação e quer dizer enquanto seu servidor está faminto por poder de computação, ele pode pedir emprestado esse poder de computação acumulado. Para esse poder computacional, eles usaram uma palavra sofisticada chamada CPU Credits.

Eu pesquisei e encontrei boas explicações em alguns blogs http://themindtracks.com/amazon-launches-new-low-cost-ec2-instances-burstable-performance/

Achal Saraiya
fonte