Question

Nous utilisons CruiseControl avec un serveur StarTeam et avons des problèmes de plantage du serveur StarTeam. Nous nous demandons si nous frappons trop fort le serveur. Sur 3 machines CruiseControl et sur une trentaine de projets, nous nous connectons à StarTeam et recherchons des modifications toutes les minutes environ. La plupart de nos projets contiennent environ 20 000 fichiers. Quelqu'un a-t-il déjà expérimenté les limitations de performances dans ce type de scénario avec StarTeam?

Je suis également intéressé par les métriques de performance de CruiseControl avec d'autres systèmes de contrôle de version, tels que TFS, Perforce, SVN, etc. Ont-ils des problèmes d'évolutivité lors de l'utilisation de CruiseControl et d'un grand nombre de projets contenant de nombreux fichiers? ?

Était-ce utile?

La solution

J'ai déjà utilisé Star Team pour une intégration continue - bien que j'utilise TeamCity, pas CruiseControl. Dans notre cas, les connexions régulières entre TeamCity et StarTeam ne s’inscrivent guère comme une entorse à notre surveillance des performances.

Avez-vous consulté les fichiers journaux StarTeam sur votre serveur? - généralement situé dans le répertoire racine de votre coffre-fort de code ou de votre ruche. J'ai généralement trouvé les journaux suffisants pour résoudre les problèmes.

Autres conseils

Vous souhaitez utiliser le "jeu de modifications composé". comme décrit ici:

StarTeam prend-il en charge les "déclencheurs"? Au lieu de demander à vos machines CruiseControl de vérifier le référentiel toutes les minutes, votre machine StarTeam informera CruiseControl de la modification du code en touchant un fichier.

En gros, quand une mise à jour est effectuée sur un projet, votre VCS touche un fichier que CruiseControl surveille (comme project-a-update.txt). Une fois qu'il a constaté que le fichier a changé, CruiseControl sait qu'il est difficile de mettre à jour votre VCS. Il interroge donc un seul fichier texte par projet toutes les N minutes, au lieu du référentiel entier.

Lors de l’exécution de CC sur plusieurs projets actifs, l’amélioration des performances la plus importante a été d’installer un agent de cache MPX sur le même ordinateur et de s’assurer que celui-ci stockait les attributs et le contenu des fichiers. (Eh bien, cela et en veillant à utiliser ccache dans les versions.)

L’idée de déclencheurs existe dans le SDK StarTeam, mais je ne sais pas dans quelle mesure elle est intégrée à CC. Pour vérifier si une construction est requise, nous conservons la dernière extraction du serveur dans un répertoire vide et utilisons la liste stcmd pour comparer les modifications. C'est très rapide.

Autant que je sache, StarTeam ne prend pas en charge les déclencheurs. La tâche StarTeam de CruiseControl.NET ne prend en charge que les interrogations, et je n'ai trouvé aucune preuve nulle part que StarTeam prenne en charge les déclencheurs de manière native.

J'éprouve exactement le même problème en poussant StarTeam à sa limite. Je ne suis pas certain, mais je commence à penser que le problème critique est lié à des accès simultanés, car les problèmes se produisent beaucoup plus souvent lorsqu'un projet est très actif, tant de la part des développeurs que de CruiseControl.

La pénalité pour le vote sur les modifications commence également à devenir assez importante. Pire encore, la peine est doublée. Le premier appel à StarTeam est un appel de "hist". pour obtenir le jeu de modifications permettant de signaler et de déclencher une construction, puis un appel de "co". effectue une deuxième vérification de l’ensemble de l’arborescence des sources et extrait tous les fichiers obsolètes ou manquants. Si quelqu'un peut suggérer un moyen de créer un déclencheur autour d'un projet StarTeam qui éliminerait l'un ou l'autre, j'aimerais bien l'essayer.

Un élément d'information supplémentaire que j'ai pu trouver.

StarTeam ne déconnecte pas toujours un utilisateur (ou un agent dans le cas d’accès CruiseControl) et peut entraîner des dizaines de connexions / connexions ouvertes pour le même utilisateur / agent. Malheureusement, il est très difficile de confirmer s'il s'agit d'un problème lié car je ne peux pas surcharger le serveur de manière fiable.

Nous utilisons une version plus ancienne de StarTeam qui n’a pas de MPX. Je me demande si quelqu'un a déjà utilisé StarTeam dans un autre environnement d'intégration continue prenant en charge la méthode MPX.

Tout d’abord, je n’ai aucune expérience de StarTeam! J'ai toutefois une expérience de CruiseControl et de la subversion.

Vous pouvez définir un intervalle moins agressif que 1 minute - 3-5 minutes sont généralement acceptables pour vérifier si un projet a besoin d'être construit. Mais j’accepte qu’il y ait peut-être une raison pour laquelle vous devez vérifier très fréquemment.

La subversion évolue très bien. En effet, chaque fois que cruise vérifie s'il existe une mise à jour, elle compare uniquement le numéro de version local au numéro de version distant du projet. Il n'est donc pas nécessaire de vérifier chaque fichier. La vitesse de cette vérification n'est donc pas affectée par le nombre de fichiers du projet.

J'espère que cela vous aide.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top