aplicativo java antigo e proprietário trava em vários núcleos

0

Eu tenho que usar o StarTeam 2005 CrossPlatform Client em um sistema debian recente dentro de uma VM. Isso funciona bem, se a VM estiver configurada para single-core. Mas, se eu configurar vários processadores e / ou vários núcleos, o aplicativo congelará na inicialização, mostrando apenas a tela inicial. Nenhum rastreio de erro é mostrado no console.

Existe uma solução alternativa para colocar esses aplicativos em funcionamento em um ambiente de vários núcleos? Atualmente, eu tenho que reiniciar, se eu quiser fazer check-in ou trabalhar com uma configuração single-core. Eu uso essa VM para desenvolvimento e make -j8 é mais divertido do que apenas um make ;)

Eu tentei hackear uma chamada para o script de inicialização como schedtool -a 0x1 -v -e java ... (definindo a afinidade do processador para uma) mas sem sucesso - mesmo comportamento.

O mesmo aconteceu em uma configuração mais antiga (VM mais antiga, Linux mais antigo, mesma StarTeam), mas eu não tenho os números de versão deles. Aqui está a configuração do sistema atual:

  • VMWare Workstation 9.0.3 build-1410761, adições de convidados instaladas
  • Debian Wheezy (Linux cmd-vm 3.2.0-4-686-pae # 1 SMP Debian 3.2.46-1 + deb7u1 i686 GNU / Linux)
  • Java Runtime Environment (TM) SE (build 1.7.0_25-b15)
  • launch-script: LAXUNIX.SH - LaunchAnywhere (tm) versão 5.0
  • Cliente do StarTeam Cross Platform Build 7.0.0-133
por Peter Schneider 15.01.2014 / 17:45

1 resposta

0

Como dito acima, limitar o número de núcleos de CPU não era suficiente. Eu tive que usar cpulimit para diminuir o uso de cpu deste programa:

Logo após invocar o java, adicionei esta linha no script de inicialização:

cpulimit -e java -l 25 -b

Isso limita o java a 25% da velocidade máxima de um cpu / core. Limitando o número de CPUs (a opção -c não é necessária). Provavelmente apenas uma condição de corrida na inicialização do programa.

    
por 20.01.2014 / 11:25