Skip to content
Latchkey

O Que É Dimensionar Corretamente um runner? Ajustar o Tamanho da Máquina ao job

Dimensionar corretamente um runner é escolher a máquina menor e mais barata que ainda executa um job de forma eficiente - sem pagar por núcleos ociosos nem pagar minutos extras por uma máquina pequena demais.

O tamanho do runner é uma alavanca de custo nos dois sentidos. Grande demais e você paga uma tarifa premium por núcleos que ficam ociosos; pequeno demais e o job leva mais tempo, consumindo mais minutos. O dimensionamento correto encontra o ponto ideal por job, e como os pipelines rodam constantemente, acertar isso compensa a cada execução.

O custo de errar

Um runner de 8 núcleos custa cerca de 4x um de 2 núcleos. Se um job é limitado por I/O e nunca usa os núcleos, três quartos desse premium são desperdício. Mas um runner de 2 núcleos que leva o dobro do tempo de um de 4 núcleos pode custar mais em minutos do que a máquina maior custaria.

Como encontrar o tamanho certo

Faça o profiling do job: observe a utilização de CPU e memória em diferentes tamanhos. O tamanho certo é o menor em que o job não fica com gargalo - onde adicionar núcleos deixa de reduzir o tempo de execução de forma significativa. Abaixo disso, você desperdiça minutos; acima, desperdiça tarifa.

Limitado por CPU versus limitado por I/O

Jobs limitados por CPU (compilação, suítes de teste pesadas) se beneficiam de mais núcleos e podem sair mais baratos em um runner maior que termina rápido. Jobs limitados por I/O (downloads, chamadas de rede) ganham pouco com núcleos extras e devem permanecer pequenos.

Dimensionar por job, não por pipeline

Jobs diferentes em um mesmo pipeline têm perfis diferentes. Um job de lint precisa de quase nada; uma suíte de integração pode precisar de núcleos de verdade. Dimensionar cada job de forma independente é melhor do que escolher um único tamanho para todo o pipeline.

A memória também importa

O dimensionamento correto não é só sobre núcleos. Um job que sofre OOM e é morto em um runner pequeno desperdiça a execução inteira; um com muito mais memória do que usa paga a mais. Ajuste a memória ao pico real do job, não a um palpite.

Dimensionamento em runners gerenciados

Plataformas gerenciadas facilitam o dimensionamento ao oferecer uma gama de tamanhos com preços justos e cuidar do provisionamento. A Latchkey executa jobs em instâncias de nuvem corretamente dimensionadas por cerca de 70% abaixo do custo dos runners hospedados pelo GitHub, então o runner corretamente dimensionado também é mais barato por minuto do que o equivalente hospedado.

Principais conclusões

  • O dimensionamento correto escolhe a menor máquina que executa um job de forma eficiente.
  • Grande demais desperdiça tarifa em núcleos ociosos; pequeno demais desperdiça minutos em tempo de execução.
  • Jobs limitados por CPU podem sair mais baratos em runners maiores; os limitados por I/O devem permanecer pequenos.

Guias relacionados