Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Charge CPU

14 réponses
Avatar
Yves Lambert
Bonjour,

je recherche un algorithme simple, ou une methode issue d'une classe
java libre pour evaluer la charge du CPU du systeme qui heberge la
machine virtuelle java. De preference une methode independante du
systeme et non pas en faisant un test sur le systeme et s'appliquant en
fonction de celui-ci. Il semblerait aue le SDK java 5 Sun contienne une
telle methode mais je recherche en priorite une bibliotheque libre,
pouvant etre execute en environnement 1.4 (voire 1.3) (et cerise sur le
gateau pourquoi pas dans une JVM libre). J'ai d'abord pense a faire une
sorte de benchmark et mesurer le temps d'execution mais on m'a dit aue
c'etait une mauvaise idee. Voila... Merci pour vos idees et conseils.

10 réponses

1 2
Avatar
TestMan
Bonjour,

http://mc4j.org/ ?

A+

TM

Bonjour,

je recherche un algorithme simple, ou une methode issue d'une classe
java libre pour evaluer la charge du CPU du systeme qui heberge la
machine virtuelle java. De preference une methode independante du
systeme et non pas en faisant un test sur le systeme et s'appliquant en
fonction de celui-ci. Il semblerait aue le SDK java 5 Sun contienne une
telle methode mais je recherche en priorite une bibliotheque libre,
pouvant etre execute en environnement 1.4 (voire 1.3) (et cerise sur le
gateau pourquoi pas dans une JVM libre). J'ai d'abord pense a faire une
sorte de benchmark et mesurer le temps d'execution mais on m'a dit aue
c'etait une mauvaise idee. Voila... Merci pour vos idees et conseils.


Avatar
Yves Lambert
TestMan wrote:
Bonjour,

http://mc4j.org/ ?


heu non. ça ne me semble pas vraiment correspondre à mes besoins.
Tout ce que je veux c'est une méthode sans argument qui me renvoie la
charge du système sur lequel elle s'exécute, en pourcentage par exemple,
ou la disponibilité du système, relative, en pourcentage ou absolue ce
qui serait encore mieux, en megaflops ou n'importe quelle échelle
commune... et rien d'autre.ça fait peut-être partie des fonctionnalité
de mc4j mais je ne peux pas l'utiliser tel quel ni embarquer tout le
code de mc4j pour utiliser uniquement cette methode. ça ne correspond ni
à mes besoins ni a priori à mon environnement.


PS. Si vous pouviez éviter de quoter comme une otarie mazoutée ça
faciliterait la conversation.

Avatar
said.rabie
bonjour Yves,

J'ai pas de reponse precise a ton probleme, mais si tu es sur Linux et
tu as le courage de le faire à la main ( ouvrir le fichier /proc/stat
et traiter la 1er ligne qui coresponds au cpu)

si ca t'interesse je peux t'envoyé le code corespondant.

pour windows acune idée :)

Saïd
Avatar
Yves Lambert
wrote:
bonjour Yves,
Bonjour Saïd,


J'ai pas de reponse precise a ton probleme, mais si tu es sur Linux
et tu as le courage de le faire à la main ( ouvrir le fichier
/proc/stat et traiter la 1er ligne qui coresponds au cpu)


ça doit pouvoir se faire. Je vais regarder ce qu'il y a dans ce fichier
virtuel qui puisse être exploité.
On m'a parlé aussi de snmp, et il existe des bibliothèques java pour
mais là pareil, l'implantation de TCP/IP sous windows est souvent
incomplète... reste le registre mais il n'est pas
mis à jour en temps réel, donc c'est l'impasse

si ca t'interesse je peux t'envoyé le code corespondant.


ben ça me ferai gagner du temps. ça n'est jamais que 1% de mon appli
au pire je peux récupérer le résultat d'uptime, ça donne déjà une bonne
indication mais là pareil si uptime est implanté sur 95% de *ixes je ne
connais pas l'équivalent sous windoze..

pour windows acune idée :)


:(((

Avatar
Yves Lambert
in fr.comp.lang.java wrote:
[linux]
ouvrir le fichier /proc/stat


Euh... sur ma machine:
$ ls -l /proc/stat
-r--r--r-- 1 root root 0 2006-05-24 23:55 /proc/stat
^^^
en fait je pense que j'aurai du mal à en tirer des informations en
l'*ouvrant*

Plus sérieusement

si je fais :
cat /proc/stat
j'ai les deux premières lignes qui ne diffèrent que par le début
(j'ai un seul processeur sur ma machine)

à quoi correspond la première ligne sur les machines multi-processeurs ?
(moyenne ? cummul ? min, max, autres ?)
et quel sont le(s) nombres(s) qui m'intéresse(nt) ie pour connaitre la
charge (ou la disponibilité) du/des processeur ?

Autre chose :
J'ai été voir comment ça se passait sous unix (IRIX 64) et dans le
répertoire /proc il n'y a que les descripteurs de processus. Pas de
pseudo-fichier /proc/stat je suppose qu'on doit pouvoir récupérer l'info
autrement sous unix ?

(fu2)

Avatar
Nicolas Le Scouarnec
si ca t'interesse je peux t'envoyé le code corespondant.
ben ça me ferai gagner du temps. ça n'est jamais que 1% de mon appli

au pire je peux récupérer le résultat d'uptime, ça donne déjà une bonne
indication mais là pareil si uptime est implanté sur 95% de *ixes je ne
connais pas l'équivalent sous windoze..

pour windows acune idée :)
:(((



Installer cygwin ? Tu auras alors la commande uptime comme sur tous les
autres unixes.

--
Nicolas Le Scouarnec


Avatar
TestMan
Bonjour,

TestMan wrote:
Bonjour,

http://mc4j.org/ ?


heu non. ça ne me semble pas vraiment correspondre à mes besoins.
Tout ce que je veux c'est une méthode sans argument qui me renvoie la
charge du système sur lequel elle s'exécute, en pourcentage par exemple,
ou la disponibilité du système, relative, en pourcentage ou absolue ce
qui serait encore mieux, en megaflops ou n'importe quelle échelle
commune... et rien d'autre.ça fait peut-être partie des fonctionnalité
de mc4j mais je ne peux pas l'utiliser tel quel ni embarquer tout le
code de mc4j pour utiliser uniquement cette methode. ça ne correspond ni
à mes besoins ni a priori à mon environnement.


MC4J est une console d'admin JMX, qui te permetra de vérifier si la VM
que tu utilises est instrumentable par JMX (Note au passage que si tu as
un JDK1.5 ou plus sous la main tu peux aussi utiliser jconsole à la
place qui est inclus dans un tel JDK)

Si elle est instrumentable, cet outil te permettra de trouver
facilement, les identifiants des objets à rechercher (ici, l'objet JMX
qui contient le taux d'utilisation mémoire ou CPU); sur ma machine :

ObjectName : java.lang:type=OperatingSystem
ClassName : com.sun.management.OperatingSystem

A l'aide de ces infos, tu dois pouvoir écrire un bout de code Java qui
utilise JMX et te retourne l'info que tu cherches.

Tu pourras en savoir plus sur :
http://www.ddj.com/dept/java/184406481

PS. Si vous pouviez éviter de quoter comme une otarie mazoutée ça
faciliterait la conversation.


Otarie non, mais tux oui !

A+
TM


Avatar
Yves Lambert
TestMan wrote:

MC4J est une console d'admin JMX, qui te permetra de vérifier si la VM
que tu utilises est instrumentable par JMX (Note au passage que si tu as
un JDK1.5 ou plus sous la main tu peux aussi utiliser jconsole à la
place qui est inclus dans un tel JDK)


Le risque d'utiliser le 1.5 ou + c'est que le programme risque de ne
*jamais* pouvoir tourner avec un JVM libre - probleme de brevets de
licence Sun assez tordue etc. mais bon, ca c'est une limite que /je/
m'impose...

ObjectName : java.lang:type=OperatingSystem
ClassName : com.sun.management.OperatingSystem


ca c'est le JDK 1.5 ?

A l'aide de ces infos, tu dois pouvoir écrire un bout de code Java qui
utilise JMX et te retourne l'info que tu cherches.

Tu pourras en savoir plus sur :
http://www.ddj.com/dept/java/184406481


je vais voir ca. J'ai peut-etre eu tort d'ecarter cette solution si vite.

Otarie non, mais tux oui !


Un tux dans une maree noire ? Exxon complice de Mammon ?

Avatar
Yves Lambert
Yves Lambert wrote:
in fr.comp.lang.java wrote:
[linux]

ouvrir le fichier /proc/stat



Comme il n'y a pas eu de reponse je pense que ma question etait un peu
noyee dans le contexte, je la repose :
sur linux, dans le repertoire proc, il y a en plus des processus tout un
tas de fichiers dont en particulier /proc/stat qui lorsqu'on l'ouvre
delivre des infos sur le/les processeurs.

Y a-t-il un equivalent standard unix ?


vi=oila, merci de vos eclaircissements...


Avatar
Nicolas George
Yves Lambert wrote in message <e5hfs4$o2s$:
sur linux, dans le repertoire proc, il y a en plus des processus tout un
tas de fichiers dont en particulier /proc/stat qui lorsqu'on l'ouvre
delivre des infos sur le/les processeurs.

Y a-t-il un equivalent standard unix ?


Non.

1 2