Voltar ao blog

Estamos roubando de você? Entendendo o CPU Steal Time na nuvem

Estamos roubando de você? Entendendo o CPU Steal Time na nuvem

Os clientes costumam perguntar sobre o CPU steal time. Especialmente aqueles que usam intensamente as CPUs e para quem ele é um critério fundamental de desempenho. Existem bastantes diferenças na configuração e no comportamento de CPUs e núcleos entre ambientes físicos e virtuais. Mesmo entre provedores de nuvem, existem diferenças de configuração que tornam difícil uma comparação direta à primeira vista. Por esse motivo, achamos útil fornecer uma breve visão geral da nossa configuração e lógica de alocação de CPU para os clientes, bem como explicar as fontes mais comuns de CPU steal time.

Portanto, em primeiro lugar, para quem não está familiarizado com o conceito, o CPU steal time é o tempo que a sua CPU virtual dentro do seu servidor em nuvem precisa esperar pela CPU física real enquanto o hipervisor está ocupado usando-a para outras coisas (como outras máquinas virtuais/servidores em nuvem). Este é um excelente artigo sobre o CPU steal time que vale muito a pena ler.

Um pouco de informação sobre a nossa configuração de CPU

A primeira coisa a entender refere-se à forma como alocamos núcleos entre máquinas virtuais em cada nó de computação físico que hospeda a sua computação. As CPUs e os seus núcleos na CloudSigma são compartilhados. Em outras palavras, não vinculamos o servidor em nuvem de um cliente a núcleos específicos. O tempo de CPU é atribuído dinamicamente pelo agendador do nó de computação físico e tudo é compartilhado. Acreditamos que isso traz uma série de benefícios ao fornecer um desempenho mais confiável de forma holística, permitindo que o nó de computação faça ajustes de alocação sensatos em tempo real para equilibrar a carga.

Em combinação com isso, usamos Control Groups (cgroups, de forma abreviada) para garantir tempo de CPU suficiente para cada um dos servidores em nuvem, de acordo com os recursos que você definiu por meio do tamanho do servidor. No final, o agendador decide o que fazer com os recursos restantes e cgroups. Também vale a pena notar que reservamos um conjunto de núcleos específicos para ficarem fora do intervalo de alocação para as cargas de trabalho de computação dos clientes. Usamos esses núcleos para executar o sistema operacional do host físico. Em particular, reservamos núcleos adicionais para o processamento de operações de rede e armazenamento. Tudo isso visa aumentar a estabilidade geral da máquina. Além disso, ajuda a fornecer níveis de desempenho confiáveis ao longo do tempo, independentemente da carga de outros clientes para você, como cliente.

As fontes de CPU steal time em um ambiente virtualizado

Ao contrário de um ambiente físico, existem várias fontes e situações em que você pode experimentar o CPU steal time. Isso ocorre porque as coisas são mais complexas em um ambiente virtualizado multilocatário. Nem todas são realmente situações em que você não está recebendo o tempo de CPU que deveria; na verdade, em muitos casos, você pode frequentemente absorver ciclos de CPU sobressalentes além do tamanho alocado, mas essa não é uma situação em que você veria o CPU steal time. As três situações mais comuns são detalhadas a seguir.

Seu servidor em nuvem está sobrecarregado
Acontece! Todo mundo quer usar o mais próximo possível da capacidade total daquilo pelo que está pagando, no entanto, se a CPU alocada para o seu servidor em nuvem virtual não for suficiente para processar a carga de trabalho, você poderá ver o CPU steal time à medida que as tarefas se acumulam e entram em fila na CPU virtual. Se essa for a causa raiz do CPU steal time, a solução é redimensionar o servidor em nuvem. Se for uma sobrecarga temporária, você pode deixar as coisas como estão com segurança. Você verá o CPU steal time desaparecer quando a sua carga diminuir.

O servidor físico que hospeda seu servidor em nuvem está sobrecarregado
Se houver uma sobrecarga no host, neste caso, trata-se de uma falha do nosso lado. É raro, mas pode acontecer. Nesse caso, usamos a migração ao vivo para migrar, sem interrupções, máquinas virtuais para outros nós de computação físicos, a fim de trazer os níveis de carga de volta aos níveis normais. Geralmente, mantemos os hosts bem abaixo da carga total. Portanto, se você continuar a observar isso por um período prolongado, entre em contato conosco. Nosso suporte gratuito 24 horas por dia, 7 dias por semana, pode verificar o host físico em que você está. Se não houver sobrecarga, é improvável que essa seja a causa raiz do seu CPU steal time.

Você está usando um tamanho de núcleo virtual menor
Na CloudSigma, oferecemos a você a capacidade de definir o tamanho do núcleo virtual para aproveitar as vantagens de ter, por exemplo, mais threads de CPU de núcleos virtuais menores para qualquer tamanho de servidor em nuvem. O servidor em nuvem dentro do sistema operacional sempre verá o tamanho do núcleo como o tamanho físico total.

Se o núcleo físico for de 2.6GHz, mas sua VM for de 4GHz e dois núcleos, cada núcleo virtual será de 2GHz. Portanto, você sempre verá o steal time. Na verdade, isso ocorre porque você recebe uma quantidade pro rata do núcleo total, não o tamanho total, devido ao dimensionamento do núcleo virtual ser menor. Como tal, você deve sempre ajustar quaisquer cálculos de CPU steal time para levar em conta o dimensionamento menor do núcleo virtual, caso de fato esteja usando isso. Para evitar isso, você pode usar o tamanho total do núcleo por núcleo. Você pode fazer isso expandindo o tamanho do núcleo virtual para o tamanho total do núcleo da CPU (por exemplo, Intel v4 2.6GHz).

Conclusão

O CPU steal time na nuvem é um pouco mais complexo do que nos ambientes físicos tradicionais de locatário único. No entanto, ele definitivamente ainda existe. O relatório de ’CPU steal time’ pelos sistemas operacionais não foi, no entanto, ajustado para as diferentes condições. Isso significa que você pode obter falsos positivos. Quando você encontra CPU steal time, geralmente significa que há uma restrição de recursos ocorrendo. Esperamos que este post ajude você a identificar rapidamente a causa raiz e garantir a continuidade das operações tranquilas.

Feliz computação!

Robert

 

author

Robert Jenkin

Autor · CloudSigma

Preslav Dobrev é um designer criativo na CloudSigma, focado na construção de uma identidade empresarial consistente por meio de canais de marketing tradicionais e inovadores. Ele é hábil em combinar a visão artística com o marketing estratégico para criar narrativas de marca impactantes.

Comentários

Nenhum comentário ainda. Seja o primeiro.