A execução do Hudson é construída com uma prioridade de processo menor

3

No meu escritório, temos um servidor mais antigo rodando o Hudson (1.395) e uma coleção de outras coisas (o JIRA e o SVN são os dois importantes). Quando Husdon está em execução, a lentidão no servidor é muito perceptível.

Eu tenho tentado encontrar uma maneira de refazer os processos de criação que o Hudson inicia (nós usamos o maven). Não parece haver uma opção para isso. Eu não quero que a cópia do Tomcat Hudson esteja rodando para estar em uma prioridade mais baixa, então eu tenho tentado descobrir uma maneira de apenas aplicá-lo ao processo de criação. Sem substituir / adicionar servidores / escravos, estas são as únicas opções que vi:

  1. Eu posso substituir o plugin maven pelo meu próprio, que inicia o Java através de um bom. Este parece ser um longo caminho a percorrer para uma mudança tão pequena, embora eu tenha encontrado onde no código a mudança iria (em MavenProcessFactory.java, em torno da linha 110). Isso seria um fardo de manutenção

  2. Eu posso apontar o Hudson em um diretório Java falso. Ao fazer isso, eu poderia substituir o Java por um script de shell que chamaria o Java real, renomeado.

  3. Eu poderia configurar algum tipo de script, como com o cron, mas eu teria que pegar todos os sub-processos para fazer isso direito

Alguém já fez algo assim? Você sabe de outra opção?

Opção # 3 é um truque claro. # 2 evita que eu tenha que tocar no código (então eu não teria que me preocupar com futuras atualizações), mas não está claro o que está acontecendo. Corrigir o código exigiria alguma manutenção, mas eu poderia deixar claro como estou executando o Maven ou até mesmo tornar o niceness configurável em uma base por projeto.

    
por MBCook 07.10.2011 / 21:40

1 resposta

3

Sem uma facilidade no software em si que permite fazer isso, você praticamente delineou as três opções disponíveis para que isso aconteça sem trabalhar muito.
Olhando para essas opções mais de perto:

A opção 3 é uma droga. Não faça isso. Muito complexo e muito potencial para estragar.

A opção 1 é uma droga menor - você só precisa se lembrar de corrigir toda vez que fizer uma atualização, o que é irritante.

Opção 2 é o caminho de menos sugar. É o que eu faria.
Sim, não é imediatamente óbvio o que está acontecendo, mas se você documenta o que você fez (e a documentação é em um local imediatamente óbvio) não é uma má solução.

    
por 07.10.2011 / 22:23