Pergunta de entrevista para Engenheiro DevOps

Como você define requests e limits de CPU e memória para uma carga de trabalho?

O que o entrevistador está avaliando, como estruturar sua resposta e um exemplo falado que você pode adaptar.

Resposta rápida

Defina os requests a partir do uso observado, normalmente perto da mediana para CPU e perto do pico para memória, porque os requests guiam o scheduling e a capacidade. Coloque o limit de memória perto do request, já que ultrapassá-lo faz o container ser morto, e seja cauteloso com limits de CPU porque eles causam throttling que aparece como latência inexplicada. Revise os números com dados reais em vez de copiá-los entre serviços.

Por que os entrevistadores perguntam isso

Esta é uma pergunta prática em que respostas erradas causam dor real em produção, e o entrevistador provavelmente tem cicatrizes. Ele quer que você saiba que CPU é compressível e memória não, que limits de CPU causam throttling em vez de uma lentidão graciosa, e que os requests determinam tanto o scheduling quanto o custo do cluster. Citar as classes de quality of service e como medir o uso mostra profundidade.

Como estruturar sua resposta

  • Explique que requests guiam o scheduling e limits guiam a imposição.
  • Separe CPU de memória porque elas se comportam de formas diferentes.
  • Dê um método para chegar aos números a partir de dados reais.
  • Cite throttling, kills por falta de memória e quality of service.

Exemplo de resposta

Exemplo falado, em primeira pessoa

Requests são o que o scheduler usa para posicionar o pod e o que você efetivamente paga, e limits são o teto que o runtime impõe. Os dois recursos se comportam de forma completamente diferente. CPU é compressível, então bater no limit de CPU significa que o container é throttled, e isso aparece como picos de latência sem causa óbvia, o que é horrível de depurar. Memória não é compressível, então ultrapassar o limit de memória significa que o container é morto na hora. Isso leva aos meus padrões: definir o request de CPU pelo uso mediano observado com alguma folga, e eu normalmente sou cauteloso com limits de CPU em serviços sensíveis a latência, ou eu os defino com generosidade. Para memória eu coloco o request perto do pico realista e o limit perto dele, para um vazamento falhar rápido e de forma visível em vez de comer o nó em silêncio. Eu tiro os números de umas duas semanas de percentis de uso real, não de copiar de outro serviço, e reviso depois de testes de carga. O outro lado é que requests inflados são o principal motivo de clusters parecerem vazios e ainda assim não conseguirem agendar nada.

Vai encarar essa entrevista em breve? O GhostPilot escuta a sua chamada ao vivo, identifica a pergunta no instante em que ela é feita e coloca uma resposta estruturada na sua tela em tempo real. Teste na sua próxima entrevista simulada ou pegue um Session Pass de $29, sem assinatura, para a hora da verdade.

Veja como funciona

Perguntas de acompanhamento que você pode esperar

  • O que acontece com um pod quando ele ultrapassa o limit de memória?
  • Por que você deliberadamente omitiria um limit de CPU?
  • Como as classes de quality of service afetam a ordem de despejo?

Mais perguntas para Engenheiro DevOps

Seu entrevistador vai fazer a própria versão desta. Cole a descrição real da vaga no Question Predictor gratuito e receba as 20 perguntas que essa vaga tem mais chance de fazer, com o que cada uma está de fato sondando.

Prever minhas perguntas

Ensaie as perguntas difíceis antes que elas apareçam

Pratique com um copiloto ao vivo e depois entre pronto. Um Session Pass de $29 te leva até o fim da entrevista, sem assinatura e sem amarras.

Instalar o GhostPilot