Je dois utiliser le client StarTeam 2005 CrossPlatform sur un système Debian récent dans une machine virtuelle. Cela fonctionne correctement si la machine virtuelle est configurée pour un cœur. Mais si je configure plusieurs processeurs et / ou plusieurs cœurs, l'application se fige au démarrage et ne montre que l'écran de démarrage. Aucune trace d'erreur n'est affichée sur la console.
Existe-t-il une solution de rechange pour que de telles applications soient opérationnelles sur un environnement multi-core? De manière courante, je dois soit redémarrer, si je veux me connecter ou travailler avec une configuration mono-core. J'utilise cette machine virtuelle pour le développement et make -j8
c'est plus amusant qu'une simple plaine make
;)
J'ai essayé de pirater un appel dans le script de démarrage comme schedtool -a 0x1 -v -e java ...
(définition de l'affinité processeur) mais sans succès - même comportement.
La même chose s’est produite avec une ancienne installation (ancienne VM, ancien Linux, même StarTeam), mais je n’ai pas les numéros de version de ceux-ci. Voici la configuration du système actuel:
- VMWare Workstation 9.0.3 build-1410761, ajout d'invités installé
- Debian Wheezy (Linux cmd-vm 3.2.0-4-686-pae # 1 SMP Debian 3.2.46-1 + deb7u1 i686 GNU / Linux)
- Environnement d'exécution Java SE (version 1.7.0_25-b15)
- launch-script: LAXUNIX.SH - LaunchAnywhere (tm) version 5.0
- StarTeam Cross Platform Client Build 7.0.0-133
schedtool
. Lataskset
question de la question que vous avez mentionnée échoue également, mais il est intéressant de noter que l'écran de démarrage de l'application disparaît - le processus Java est à une charge de 100% du processeur dans les deux scénarios.Réponses:
Comme indiqué ci-dessus, limiter le nombre de cœurs de processeurs n'était pas suffisant. J'ai dû utiliser
cpulimit
pour diminuer l'utilisation de ce programme par le processeur:Directement après avoir appelé Java, j'ai ajouté cette ligne dans le script de démarrage:
cpulimit -e java -l 25 -b
Cela limite Java à 25% de la vitesse maximale d'un processeur / unité centrale. Limiter le nombre de processeurs (l'
-c
option n'est pas nécessaire). Probablement juste une condition de concurrence dans l'initialisation du programme.la source