Você deve procurar por um agendador de tarefas / tarefas, um sistema de gerenciamento de clusters ou um gerenciamento de nuvem distribuídos. Muitos destes já existem; cas apontou para vários em seus comentários e o Google vai aparecer muito mais.
Suspeito que todos vocês ficarão muito mais felizes quando você tiver implantado um e não precisar mais se preocupar em pisar nos dedos uns dos outros o tempo todo. Além disso, você deve consertar seus servidores para que os erros façam com que a tarefa falhe, e não derrubem a máquina.
Se você insistir em construir o seu próprio (algo que confesso ter feito - embora tenha sido há 15 anos), as tarefas em geral consomem vários tipos diferentes de recursos, e você provavelmente quer considerar quais são suas tarefas:
- memória (RAM) [do seu vai muito lento ou falha, eu acho que isso é um grande problema para sua tarefa
make
] - largura de banda de E / S de disco
- operações de E / S de disco por segundo (pesquisas)
- espaço em disco
- Tempo de CPU
- tempo da GPU
- largura de banda de rede
Você pode verificar o uso de memória via free
, E / S de disco via iostat
, espaço com free
, uso da CPU via cat /proc/loadavg
(no Linux) ou uptime
, top
, ps
, etc.
Mas, é claro, verificar os números atuais tem um problema - talvez seu trabalho make
primeiro faça algumas coisas simples, levando alguns minutos, e então dispara o enorme processo que leva a RAM. Isso pode acontecer:
- Alice executa o script para iniciar uma tarefa "make".
- O script verifica o serverA, vê que ele tem toneladas de RAM livre, baixo uso da CPU e inicia a tarefa no serverA.
- Pouco tempo depois, Bob executa o script para iniciar outra tarefa que exige muito da RAM.
- A tarefa de Alice ainda não chegou à fase de uso intensivo de recursos. Então, quando o script verifica o serverA, ele ainda tem toneladas de RAM livre. Inicia a tarefa de Bob no serverA também.
- A tarefa de Bob consome a maior parte da RAM livre no servidorA
- A tarefa de Alice finalmente chega à parte de uso intensivo de RAM, mas não há RAM disponível agora. Uh-oh! ServerA se debate até a morte.
Sim, o texto acima vem da experiência de escrever um (embora para o que eu estava usando o meu, era o tempo de CPU).