Nous mettons en place un nouveau serveur pour l'intégration. Le serveur d'intégration original peut terminer le "mvn install" en 3 minutes dans une boîte Linux. Maintenant, en passant à un serveur Windows 2012 sur VM, il est passé à 9 minutes. La partie "mvn test" seule coûte 7 minutes. Beaucoup de ces tests suivent le même schéma : 1. démarrer une nouvelle JVM 2. charger les données de test à partir de fichiers/feuilles de calcul Excel dans une base de données en mémoire 3. Exécuter des requêtes dans cette base de données, valider les résultats
À votre avis, comment pouvons-nous améliorer les performances de cette VM ? Le serveur possède déjà 16 Go de mémoire, 256 Go d'espace, 8 vCPU.
Et en général, en tant que serveur de construction, la plupart des travaux sont comme ça : 1. Lire les milliers de fichiers de l'espace de travail, 2. Compiler le code source ci-dessus, 3. Générer des milliers de fichiers .class. 4. Jar/Zip ces milliers de fichiers. 5. Copiez les fichiers jars/zips vers un autre endroit.
Il semble que la charge de travail soit plus importante sur le CPU et les E/S du disque que sur la RAM, n'est-ce pas ?
Merci Jirong
0 votes
Pour autant que je sache, javac ne peut fonctionner qu'en mode monotâche... donc rien de comparable à ce que fait gcc avec le commutateur -j. Il ne reste donc que les goulets d'étranglement habituels, l'entrée/sortie du disque, les performances du processeur et de nombreux autres goulets d'étranglement, à savoir les goulets d'étranglement liés à l'utilisation de l'ordinateur. rapide ram. Les SSD aideront, ainsi qu'une connexion réseau rapide si vous faites un nouveau checkout pour chaque build. Par ailleurs, pourquoi êtes-vous passé à Windows pour votre serveur de construction ? Windows a beaucoup plus de "trucs" en arrière-plan qui peuvent affecter les performances de vos builds. votre boîte linux était probablement lean-n-mean.