surveiller l'activité de la machine hôte
Dans Diswork, je vais rendre le démon paramétrable selon trois options : * un mode débridé (diswork cherche toujours à travailler, consommation de ressources sans compter) * un mode hybride (diswork ne cherche à travailler que si les ressources le permettent afin de ne pas déranger l'utilisation de l'ordinateur par l'utilisateur) * un mode éteint (diswork ne cherche pas à travailler, consommation d'aucune ressources) Pour le mode hybride, il faudrait surveiller l'activité de la machine pour ne lancer des jobs que lorsque la machine n'est déjà chargée par les autres programmes de l'utilisateur. Il faudrait se baser sur une métrique comme la charge de la machine, l'activité CPU ou ce genre de choses. Détecter l'activité clavier/souris n'est pas une bonne solution : cela ne présume en rien de la charge de la machine. Pour cela, j'ai trouvé deux bibliothèques. Elles font appel à du code natif : * http://wiki.github.com/jezhumble/javasysmon/ (licence BSD) * http://www.hyperic.com/products/sigar et http://github.com/hyperic/sigar (licence Apache) Aucune des deux ne semble dispo sur nexus. D'autres solutions ? -- Brendan Le Ny <bleny@codelutin.com> Code Lutin
Le 14/06/2010 10:44, Brendan Le Ny a écrit :
Il faudrait se baser sur une métrique comme la charge de la machine, l'activité CPU ou ce genre de choses. Détecter l'activité clavier/souris n'est pas une bonne solution de plus, le système peut ne pas avoir d'environnement graphique. cela ne présume en rien de la charge de la machine. Pour cela, j'ai trouvé deux bibliothèques. Elles font appel à du code natif : * http://wiki.github.com/jezhumble/javasysmon/ (licence BSD) * http://www.hyperic.com/products/sigar et http://github.com/hyperic/sigar (licence Apache) Il faut éviter le plus possible d'avoir à installer "en plus" des fichier *.dll ou *.so sur le système. Aucune des deux ne semble dispo sur nexus.
D'autres solutions ? Une autre solution, c'est jna : https://jna.dev.java.net/.
Il faut juste écrire en Java, le code spécifique a chaque système, mais cela simplifie énormément le déploiement pour l'utilisateur. -- Éric <chatellier@codelutin.com> Tel: 02 40 50 29 28 http://www.codelutin.com
Il faut éviter le plus possible d'avoir à installer "en plus" des fichier *.dll ou *.so sur le système. Enfin, c'est potentiellement pas un probleme, car on peut les
Le 14/06/2010 10:51, Eric Chatellier a écrit : livrer avec et configurer le library path dessus. Mais quand même :) -- Éric <chatellier@codelutin.com> Tel: 02 40 50 29 28 http://www.codelutin.com
Le 14/06/2010 10:44, Brendan Le Ny a écrit :
Il faudrait se baser sur une métrique comme la charge de la machine, l'activité CPU ou ce genre de choses. Détecter l'activité clavier/souris n'est pas une bonne solution : cela ne présume en rien de la charge de la machine. Pour cela, j'ai trouvé deux bibliothèques. Elles font appel à du code natif : * http://wiki.github.com/jezhumble/javasysmon/ (licence BSD) Cette lib utilise : http://java.sun.com/javase/6/docs/api/java/lang/management/OperatingSystemMX...
De quoi as tu besoin exactement apart la charge ? -- Éric <chatellier@codelutin.com> Tel: 02 40 50 29 28 http://www.codelutin.com
On Mon, 14 Jun 2010 10:58:30 +0200 Eric Chatellier <chatellier@codelutin.com> wrote:
Le 14/06/2010 10:44, Brendan Le Ny a écrit :
Il faudrait se baser sur une métrique comme la charge de la machine, l'activité CPU ou ce genre de choses. Détecter l'activité clavier/souris n'est pas une bonne solution : cela ne présume en rien de la charge de la machine. Pour cela, j'ai trouvé deux bibliothèques. Elles font appel à du code natif : * http://wiki.github.com/jezhumble/javasysmon/ (licence BSD) Cette lib utilise : http://java.sun.com/javase/6/docs/api/java/lang/management/OperatingSystemMX...
Je pense que c'est la meilleur solution, sinon tu as le snmp Si ca peut aider, j'ai des bouts de code pour ca car trouver les bons oid, c pas simple :(. ex: final static public String CPU_USER = "1.3.6.1.4.1.2021.11.50.0"; final static public String CPU_SYSTEM = "1.3.6.1.4.1.2021.11.52.0"; -- Benjamin -------------------- tél: +33 (0) 2 40 50 29 28 email: poussin@codelutin.com () campagne du ruban ascii http://www.codelutin.com /\ pour les mails en ascii
Le 14/06/2010 10:44, Brendan Le Ny a écrit : > Pour le mode hybride, il faudrait surveiller l'activité de la machine > pour ne lancer des jobs que lorsque la machine n'est déjà chargée par > les autres programmes de l'utilisateur. Il y a peut-être plusieurs cas : * serveur : seule la charge compte * desktop : c'est charge ET activité utilisateur - visionnage d'un film, charge : donc pas de lancement - pas de charge et inactivité : lancement - pas de charge mais activité, j'ai pas envie que diswork prennent toutes les ressources -- Éric <chatellier@codelutin.com> Tel: 02 40 50 29 28 http://www.codelutin.com
participants (3)
-
Benjamin POUSSIN -
Brendan Le Ny -
Eric Chatellier