Skip to content
Latchkey

O Que É uma Fila de Runners? Por Que os Jobs Esperam Antes de Rodar

Uma fila de runners é a linha de jobs esperando por um runner livre - cada segundo que um job passa na fila é tempo antes de seu primeiro step sequer começar.

Quando você tem mais jobs do que runners disponíveis, os jobs extras entram na fila. O tempo de fila é puro desperdício: nada está buildando, nada está testando, seu time está apenas esperando. Entender por que as filas se formam é o primeiro passo para removê-las.

Por que as filas se formam

  • Limites de concorrência: seu plano ou frota limita quantos runners rodam de uma vez.
  • Escala lenta: uma rajada chega mais rápido do que o autoscaling consegue adicionar runners.
  • Sem capacidade quente: todo job paga um cold start, então a vazão fica atrás da demanda.
  • Incompatibilidade de label: jobs pedem um tipo de runner que não tem capacidade disponível.

Como ler o tempo de fila

Tempo de fila é o intervalo entre um job ser criado e efetivamente começar (started_at menos created_at). Um intervalo consistentemente alto significa um problema de capacidade ou escala, não um problema com o seu build em si.

O custo do enfileiramento

Filas atrasam todo o seu time: loops de feedback mais longos, merges bloqueados e pressão para desativar checks. Elas costumam ser invisíveis nas contas de CI (você não paga pelo tempo enfileirado), mas muito visíveis na frustração dos desenvolvedores.

Como eliminá-la

Adicione capacidade (autoscaling), remova cold starts (warm pools) e dimensione a concorrência corretamente. A combinação de warm pools com autoscaling rápido é o que mantém a fila vazia mesmo durante rajadas.

Runners sem fila

A Latchkey serve jobs a partir de warm pools e faz autoscaling, então os jobs tipicamente começam em cerca de um segundo sem fila - mesmo quando vários chegam de uma vez.

Principais conclusões

  • Uma fila de runners são jobs esperando por um runner disponível.
  • É causada por limites de concorrência, escala lenta ou falta de capacidade quente.
  • Tempo de fila é started_at menos created_at - tempo de feedback puramente desperdiçado.
  • Warm pools mais autoscaling mantêm a fila vazia.

Guias relacionados