surveiller et tuer les processus en cours d’exécution en utilisant 100% IO?

J’ai quelques processus qui doivent être exécutés à haute priorité (chrt 98) qui décideront occasionnellement de verrouiller et de raccorder 1 cœur à 100% (ce qui n’est pas une grosse affaire) mais surtout, il utilisera tous les IO sur un système , tellement qu’il est impossible de se connecter à la machine via ssh pour le tuer ou exécuter toute tâche sur la machine qui n’est pas chargée dans ram. S’il m’arrive déjà d’avoir quelque chose comme htop, je suis en mesure de mettre fin au processus. Existe-t-il un quelconque utilitaire / moyen de surveiller ce type de processus d’emballement et de supprimer tout ce qui utilise 100% des E / S du système pendant plus de X fois? Merci!

Vous ne pouvez pas démarrer le programme avec nice (et avec une priorité inférieure)? De cette façon au moins vous devriez être capable de ssh dans la boîte et de le tuer facilement.

La meilleure solution serait bien sûr de corriger le comportement du processus incriminé (détails nécessaires).

Ce thread serverfault semble également contenir ce que vous demandez spécifiquement.

En supposant que ce soit le disque IO consommé par l’application, pouvez-vous simplement déplacer les systèmes de fichiers auxquels il accède sur des disques séparés? De cette façon, vous aurez des E / S à consacrer aux disques sur lesquels le système d’exploitation est installé et vous pourrez vous connecter et gérer (par exemple, tuer!) Le processus.

Comme l’a dit une autre affiche, exécuter le processus avec nice est la solution, mais vous avez mentionné que vous souhaitiez l’exécuter en priorité, ce qui est étrange … Sachez que si vous exécutez un processus au plus haut niveau Priorité et il est bloqué, votre système de surveillance peut même pas être en mesure de le tuer, à moins que votre moniteur ne soit toujours plus prioritaire. En tous cas….

dieu , ainsi que plusieurs autres outils de gestion des processus, peut facilement tuer un processus s’il ne se comporte pas de plusieurs façons différentes. config ressemble à ceci – vous définissez des contrôles à un intervalle particulier, puis vous pouvez dire après cinq vérifications, nuke si elle a été supérieure à 98% de l’utilisation du processeur de manière cohérente “:

  restart.condition(:cpu_usage) do |c| c.above = 98.percent c.times = 5 end 

Un autre sharepoint vue différent du système runit est qu’il permet de définir avec élégance des limites (mais pour les limitations de processeurs, nice rest l’outil que je voudrais atteindre en premier).