GNU/Linux >> Tutoriels Linux >  >> Linux

Jenkins fonctionnant avec une utilisation CPU très élevée

J'ai remarqué quelques raisons d'utilisation anormale du processeur avec mon installation de Jenkins sur Windows 7 Ultimate.

  1. J'avais récemment mis à jour de la v2.138 à la v2.140 et ajouté quelques plugins supplémentaires. J'ai commencé à remarquer un problème avec l'exécutable Java Jenkins prenant jusqu'à 60% de mon temps CPU à chaque fois qu'un travail se déclenchait. Aucun des travaux n'était lié au processeur, récupérant simplement des données à partir de serveurs externes, cela n'avait donc aucun sens. Il a été corrigé avec un simple redémarrage du service Jenkins. Je suppose que la mise à niveau ne s'est tout simplement pas terminée proprement.

  2. Java Garbage Collection lançait des erreurs et accaparait le processeur lors de l'exécution avec les paramètres de mémoire par défaut. C'était probablement exagéré, mais je me suis déchaîné et j'ai augmenté l'espace de tas Java pour Jenkins de 256 Mo par défaut à 4 Go; qui a résolu ce problème pour moi.

    Consultez cette solution pour obtenir des instructions :https://stackoverflow.com/a/8122566/4479786


Il s'est avéré que mon problème était que plusieurs travaux avaient des milliers d'anciennes versions. C'était bien dans Jenkins 1.6 mais c'est un problème dans 2.5 (je suppose que Jenkins essaie peut-être de charger toutes les versions en mémoire lorsque vous affichez la page de présentation du travail). Pour résoudre ce problème, j'ai simplement supprimé la plupart des anciennes versions des tâches problématiques en utilisant cette stratégie, puis j'ai rechargé jenkins. A fonctionné comme un charme !

J'ai également configuré le plug-in "discard old builds" pour ne conserver que les 50 versions les plus récentes, afin d'éviter que cela ne se reproduise.


Chaque fois qu'une requête arrive, Jenkins génère des threads pour répondre à la requête. Après la mise à niveau de Jenkins, il aurait pu être invoqué à plein régime à ce moment-là. Veuillez vérifier l'utilisation du processeur et de la mémoire du serveur Jenkins dans les scénarios suivants :

  • Jenkins est inactif et aucune autre application n'est en cours d'exécution sur le serveur.
  • Une compilation a été planifiée et aucune autre application n'est en cours d'exécution sur le serveur.

Et comparez les comportements qui pourraient vous aider à déterminer si Jenkins ou l'exécution de Jenkins en parallèle avec d'autres applications causent vraiment des problèmes.

Comme @vlp l'a dit, essayez de surveiller l'application jenkins via JVisualVM avec la configuration Jstad pour vous connecter. Reportez-vous à ce lien pour configurer JvisualVM avec Jstad.


Linux
  1. Comment trouver les principaux processus en cours d'exécution par utilisation de la mémoire et du processeur

  2. Linux – Malgré toutes les tentatives, le ventilateur fonctionne toujours très fort et rapidement ?

  3. Utilisation très élevée du processeur sur un ordinateur portable HP Dv7 en cas d'inactivité ?

  4. Résoudre les problèmes d'utilisation élevée du processeur sur Windows Server

  5. Comment obtenir l'utilisation du processeur

Comment trouver les 10 principaux processus en cours d'exécution par utilisation de la mémoire et du processeur

Utilisation élevée du processeur lors de la lecture de Flash ?

Liste détaillée de l'utilisation des ressources

Comment trouver les principaux processus en cours d'exécution par utilisation de la mémoire et du processeur sous Linux

Comment vérifier l'utilisation ou l'utilisation du processeur Linux

Découvrez ce que fait réellement le processus apache à forte utilisation du processeur ?