Por que minhas instâncias da AWS estão subitamente se tornando irresponsáveis relatando uma alta CPU "roubada"?

1

A configuração Eu tenho um monte de t2.small EC2 instâncias executando hospedagem a biblioteca de processamento de imagem chamado thumbor para redimensionamento de imagem simples on-the-fly. Os originais são carregados do S3. Na frente das instâncias, tenho um balanceador de carga do EC. Eu tenho o monitoramento do servidor New Relic instalado nos servidores.

O problema Em momentos aleatórios, meus servidores de repente começam a experimentar uma média extremamente alta. Tempos de resposta. Se eu olhar para as estatísticas no New Relic, a única coisa que vejo é que a CPU do servidor é informada consistentemente de CPU "roubada".

Meus servidores parecem ter capacidade alta o suficiente e NÃO é como se houvesse picos extremos na taxa de transferência enquanto isso.

Eu notei que, se eu parar / iniciar os servidores novamente. Em seguida, a CPU Roubada desaparece e eles correm bem novamente - até a próxima vez - poderia horas ou dias entre.

Por que isso está acontecendo e o que eu posso fazer?

    
por Niels Kristian 10.02.2017 / 17:12

2 respostas

9

A série t de instâncias na Amazon usa um sistema de cotas para uso da CPU. Quando você alcança sua cota, começa a ver suas porcentagens roubadas aumentando. Não há muito o que fazer sobre isso, é estrutural para a oferta.

  • Use menos CPU no geral.
  • Use uma instância maior da série t.
  • Use uma das séries m ou c, que não tem uma cota.
por 10.02.2017 / 17:24
2

Como já foi dito por outros, é muito provável que você fique sem Créditos da CPU . Basicamente, com instâncias T2 você obtém uma fração de CPU, 20% de um núcleo no caso de um t2.small, com a capacidade de rebentar para um ou dois núcleos (dependendo do tipo de sua instância) até o limite de seu Créditos da CPU. Você também não deve usar a instância T por trás de um balanceador de carga na maioria dos casos, porque o desempenho da variável pode causar problemas estranhos que podem ser difíceis de diagnosticar.

Se você estiver sem créditos, será necessário migrar para uma instância T maior ou mudar para uma instância que tenha acesso consistente aos núcleos. C (computação otimizada) ou M (propósito geral) seriam mais apropriados.

Você pode monitorar seus créditos da CPU com CloudWatch . Isso ajudará você a decidir se quer ir com uma instância T maior ou uma instância C / M.

    
por 10.02.2017 / 20:02