Je me demandais s'il existe des solutions gratuites / open source qui démarreront et arrêteront un service Windows en fonction de la charge ? J'ai des services abonnés Pub/Sub qui effectuent un travail en arrière-plan qui n'est pas critique. Idéalement, j'aimerais pouvoir automatiser les choses de sorte que ces services pourraient démarrer si la mémoire / CPU / E/S disque était en dessous d'un certain seuil et s'arrêter en douceur si ce seuil était atteint. Connaissez-vous des solutions ? Merci JP
Réponses
Trop de publicités?Il existe un logiciel intégré à Windows appelé Gestionnaire de ressources système Windows (WSRM) qui fera ce que vous voulez, c'est-à-dire, donner la priorité aux services en fonction des ressources.
Évidemment, ce n'est pas open source, mais il est inclus dans le système d'exploitation.
Je ne suis pas au courant d'un outil externe, mais vous pourriez surveiller les compteurs de performance pertinents à l'intérieur de votre service et ne pas effectuer de travail (attendre pendant un certain temps) si les compteurs de performance que vous pensez être pertinents dépassent les seuils. Cela ne serait pas tout à fait la même chose que d'arrêter le service (il resterait toujours en mémoire), mais devrait atteindre le résultat souhaité.
Un avantage de cette approche est que vous n'avez pas à vous soucier de la configuration et de la mise en place d'un outil externe, ou de surveiller si l'outil externe fonctionne toujours.
Vous pouvez configurer une alerte qui pourrait s'exécuter sur un seuil fixe (disons CPU >= 75) Pour configurer une alerte sur Windows, voici un lien http://support.microsoft.com/kb/324752
Donc, vous pourriez configurer une alerte pour la condition Utilisation du CPU >= 75 % et en tant que ligne de commande, vous pourriez utiliser
net stop nomDuService
Cela arrête le service appelé nomDuService.
Vous pourriez définir une autre alerte pour l'inverse de l'Utilisation du CPU < 70 % et en tant que ligne de commande, vous pourriez utiliser
net start nomDuService
quand il tombe en dessous des seuils.
J'ai laissé une marge de 5% entre l'activation et la désactivation, même si vous pourriez créer un fichier batch pour retarder le démarrage et l'arrêt du service trop souvent.
J'espère que cela vous aidera