tuer un processus qui consomme tout le processeur

Le
Thomas
bonjour :-)



j'ai une application très pratique mais buggée,
et l'auteur arrête visiblement de la maintenir, je suppose parce qu'il a
mac os x 10.5, pour lequel cette application n'est plus utile
mais moi et mon client avons mac os x 10.4, donc nous en avons encore
besoin
(il s'agit de SSHKeychain)


le bug c'est que (d'après ce que j'ai pu voir dans le moniteur
d'activités) de temps en temps, inopinément, ce logiciel fait un fork et
le processus fils consomme la totalité du cpu disponible
pendant ce temps, l'application ne fait plus son travail

il suffit de tuer le processus fils qui consomme la totalité du cpu
disponible, pour que tout remarche normalement (même pas besoin de
relancer l'application)


existe t il un moyen simple de "surveiller" l'activité des processus
nommés "SSHKeychain",
et, si il y en a un qui consomme 90 % d'un processeur pendant 10 s, de
le tuer ?



ps :
j'ai un petit peu l'impression d'abuser, mais je ne sais pas quoi faire

j'ai regardé qqes fils, mais je n'ai pas les compétences pour rendre
service en répondant aux questions posées dans ce groupe

(si qqn a une idée )

--
Téléassistance / Télémaintenance
http://www.portparallele.com/ThomasDECONTES/
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Hugues
Le #17300261
Bonjour,

Ce cher Thomas
bonjour :-)


le bug c'est que (d'après ce que j'ai pu voir dans le moniteur
d'activités) de temps en temps, inopinément, ce logiciel fait un fork et
le processus fils consomme la totalité du cpu disponible
pendant ce temps, l'application ne fait plus son travail

il suffit de tuer le processus fils qui consomme la totalité du cpu
disponible, pour que tout remarche normalement (même pas besoin de
relancer l'application)

existe t il un moyen simple de "surveiller" l'activité des processus
nommés "SSHKeychain",
et, si il y en a un qui consomme 90 % d'un processeur pendant 10 s, de
le tuer ?

ps :
j'ai un petit peu l'impression d'abuser, mais je ne sais pas quoi faire



J'ai une idée de solution, pas très propre, mais qui peut dépanner ;
à base de crontab, écrire un shellscript qui listerait les processus
courants (pour bien faire, on pourrait même envisager de récupérer le
PID du processus père dans /var/run/* ?), avec un coup de grep et de
top pour récupérer l'activité desdits processus.

Après, il faut voir ce que retournent ces diverses commandes sur Mac
OS X.4 . J'ai bien un iBook, mais pas sous la main.

Bon courage :)

--
Hugues
Thomas
Le #17303141
In article Hugues
Bonjour,

Ce cher Thomas
> le bug c'est que (d'après ce que j'ai pu voir dans le moniteur
> d'activités) de temps en temps, inopinément, ce logiciel fait un fork et
> le processus fils consomme la totalité du cpu disponible
> pendant ce temps, l'application ne fait plus son travail
>
> il suffit de tuer le processus fils qui consomme la totalité du cpu
> disponible, pour que tout remarche normalement (même pas besoin de
> relancer l'application)



(moi ça va, j'ai l'habitude, je vais dans le moniteur d'activités tuer
le bon processus, et ça roule
mais ça me parait très délicat de demander à mon client de faire la même
chose)



>
> existe t il un moyen simple de "surveiller" l'activité des processus
> nommés "SSHKeychain",
> et, si il y en a un qui consomme 90 % d'un processeur pendant 10 s, de
> le tuer ?

J'ai une idée de solution, pas très propre, mais qui peut dépanner ;
à base de crontab,



je sais faire qqch récurent (pas très propre non plus mais ça marche)

toutes les heures ça devrais suffire ?
(il parait qu'il faut éviter de faire un trop grand nb de fork en
continu)

écrire un shellscript qui listerait les processus
courants (pour bien faire, on pourrait même envisager de récupérer le
PID du processus père dans /var/run/* ?),



pas vu trace de SSHKeychain dans ce dossier

avec un coup de grep et de
top pour récupérer l'activité desdits processus.



résumé :
il faut
- lister les processus qui s'appellent SSHKeychain
- récupérer leur activité
- si y en a un qui travaille trop, récupérer son pid
- le tuer (ça c'est facile)


je ne comprends pas l'option -o de ps :

si on fait
ps -xwwo %cpu=command
ca fait pareil que
ps -xwwo %cpu

comment faut il écrire ça ?


pendant que j'y suis,
c'est quoi la différence entre les mots clés "%cpu" et "cpu" ?


j'ai pas réussi à rentrer dans le man de top, il faudrait au moins qu'il
puisse donner 1 fois toutes les données et quitter,
mais c'est pas grave puisque je crois qu'avec ps on va pouvoir faire
tout ce qu'on veut




Bon courage :)



merci :-)

>
> ps :
> j'ai un petit peu l'impression d'abuser, mais je ne sais pas quoi faire



je disais "je ne sais pas quoi faire pour rendre la pareille"
parce que c'est quand même une aide importante, qui m'est très utile,
qu'on me donne sur ce forum !

- j'ai prévu de faire que du logiciel libre, mais pour l'instant j'ai
pas encore fait grand chose
- j'ai pas bcp de sous, mais éventuellement vous pouvez m'indiquer des
choses où investir / à financer, pour le jour où j'en aurais plus, ou si
j'arrive à sensibiliser un client, ...

--
Téléassistance / Télémaintenance
http://www.portparallele.com/ThomasDECONTES/
Cyrille Lefevre
Le #17308681
Thomas a écrit :
j'ai une application très pratique mais buggée,
et l'auteur arrête visiblement de la maintenir, je suppose parce qu'i l a
mac os x 10.5, pour lequel cette application n'est plus utile
mais moi et mon client avons mac os x 10.4, donc nous en avons encore
besoin
(il s'agit de SSHKeychain)


[snip]
existe t il un moyen simple de "surveiller" l'activité des processus
nommés "SSHKeychain",
et, si il y en a un qui consomme 90 % d'un processeur pendant 10 s, de
le tuer ?



Bonjour,

essaye avec qqc comme "nice -n 20 ce que tu veux..."
il est possible que ton process soit moins gourmand à l'avenir.
lorsqu'il fork, que fait-il ? lance-t-il une commande externe ?
ou fait-il des trucs dans son coin ?
as-tu essaye ktrace -p "pid de ce qui te casse les pieds ou
similaire sous osx ?

Cordialement,

Cyrille Lefevre.
--
mailto:Cyrille.Lefevre-news%
supprimer "%nospam% et ".invalid" pour me repondre.
Thomas
Le #17351281
In article Cyrille Lefevre wrote:

as-tu essaye ktrace -p "pid de ce qui te casse les pieds ou
similaire sous osx ?



ça a l'air plutôt bien :-)


pourquoi ça me dit "kdump: data too short" ?

ktrace -dip 203

--
Téléassistance / Télémaintenance
http://www.portparallele.com/ThomasDECONTES/
Thomas
Le #17353621
In article Cyrille Lefevre wrote:

as-tu essaye ktrace -p "pid de ce qui te casse les pieds ou
similaire sous osx ?



ça a l'air pas mal ce truc :-)


pourquoi ça me dit "kdump: data too short" ?

http://dl.free.fr/cPwRXRHSd
(attention c'est gros, mais t'as peut être besoin que du début)

commande génératrice :
ktrace -dip 203

--
Téléassistance / Télémaintenance
http://www.portparallele.com/ThomasDECONTES/
Thomas
Le #17355611
In article Cyrille Lefevre wrote:

Thomas a écrit :
> j'ai une application très pratique mais buggée,
> et l'auteur arrête visiblement de la maintenir, je suppose parce qu'il a
> mac os x 10.5, pour lequel cette application n'est plus utile
> mais moi et mon client avons mac os x 10.4, donc nous en avons encore
> besoin
> (il s'agit de SSHKeychain)
[snip]
> existe t il un moyen simple de "surveiller" l'activité des processus
> nommés "SSHKeychain",
> et, si il y en a un qui consomme 90 % d'un processeur pendant 10 s, de
> le tuer ?





essaye avec qqc comme "nice -n 20 ce que tu veux..."



apparemment ce "nice" ne marche qu'en lancant directement les processus ?
c'est pas possible de changer la priorité d'un processus qui est deja
lancé ?
(ktrace permet de faire les 2, pourquoi pas nice ?)

est ce qu'il transmet son niveau de priorité à ses enfants ?
(si non, je vais être obligé de repérer celui qui consomme tout le cpu,
comme pour le tuer)

il est possible que ton process soit moins gourmand à l'avenir.



tu veux dire après avoir mis en place le "nice" ?

il met une priorité moins élevée, c'est bien ça ?
donc
- quand l'utilisateur voudra lancer un calcul, ça ira aussi vite que si
y avait pas ce pb, au lieu de 2 fois moins vite, puisque le processus
défectueux attendra que le calcul soit fini,
mais
- le reste du temps, le proc continue de travailler en consommant de
l'énergie au maximum, au lieu de ne rien faire (mon client est
écologiste)
c'est bien ça ?

donc ça répondrait partiellement à mon pb,
ça serait tjr mieux que rien :-)


ah si j'ai oublié un truc :
le pb c'est que ce SSHKeychain, quand il est bloqué avec un processus
fils buggé, il ne répond plus aux nouvelles demandes de ssh
et il recommence à répondre des que le processus fils buggé est tué

donc même au niveau fonctionnel ça ne répond pas complètement au pb



lorsqu'il fork, que fait-il ? lance-t-il une commande externe ?
ou fait-il des trucs dans son coin ?



je suis pas sur de comprendre la question,
est ce que les traces jointes y répondent ?

je suppose que quand ça bugge, ça bugge après le fork et avant le exec
(c'est tjr à un moment où c'est censé "faire" qqch)


as-tu essaye ktrace -p "pid de ce qui te casse les pieds ou
similaire sous osx ?



j'ai commencé à découvrir, ça a l'air vachement pratique ce truc :-) et
pas aussi compliqué que ça en avait l'air :-)
bon, j'ai pas compris le sens de toutes les commandes que j'ai vu ...


pour info :

SSHKeychain permet de servir les clés (ou seulement la phrase de passe,
je suis pas sur) des qu'on fait une connexion ssh, peut importe dans
quelles conditions
et il permet aussi de faire des tunnels (tcp)

partout :
ktrace -dip 203
puis
ktrace -cdip 203
quand j'ai fini

quand il ne fait rien :
http://dl.free.fr/co0FG2VLG
(le processus 209 est ssh-agent)

quand je fais une connexion ssh simple alors que "les clés ne sont pas
chargées" :
http://dl.free.fr/c5g3l2vkl

quand je fais une connexion ssh simple alors que "les clés sont
chargées" :
http://dl.free.fr/cc9peQloZ

quand je démarre un tunnel alors que "les clés sont chargées" :
http://dl.free.fr/cZVZdC6TI
(le processus TunnelRunner est livré avec SSHKeychain)

(t'as pas besoin de la combinaison des 2 ?)


je laisse le machin tourner tout le temps, pour que ça soit loggé le
jour où ça arrivera à nouveau

--
Téléassistance / Télémaintenance
http://www.portparallele.com/ThomasDECONTES/
Jean-Marc Bourguet
Le #17356911
Thomas
essaye avec qqc comme "nice -n 20 ce que tu veux..."



apparemment ce "nice" ne marche qu'en lancant directement les processus ?



Voir renice :-)

--
Jean-Marc
Site de usenet-fr: http://www.usenet-fr.news.eu.org
Thomas
Le #17382731
In article Jean-Marc Bourguet
Thomas
>> essaye avec qqc comme "nice -n 20 ce que tu veux..."
>
> apparemment ce "nice" ne marche qu'en lancant directement les processus ?

Voir renice :-)



ah, merci bcp :-)

(mais pour l'instant ca ne m'avance pas)

--
Teleassistance / Telemaintenance
http://www.portparallele.com/ThomasDECONTES/
Publicité
Poster une réponse
Anonyme