J'ai besoin de vérifier l'utilisation du CPU et de la mémoire pour le serveur en java, quelqu'un sait comment faire ?
Réponses
Trop de publicités?Depuis Java 1.5, le JDK est livré avec un nouvel outil : JConsole qui peut vous montrer l'utilisation du CPU et de la mémoire de n'importe quelle JVM 1.5 ou ultérieure. Il peut faire des graphiques de ces paramètres, exporter vers CSV, montrer le nombre de classes chargées, le nombre d'instances, les deadlocks, les threads etc...
Si vous utilisez la solution runtime/totalMemory qui a été postée dans de nombreuses réponses ici (je l'ai beaucoup fait), assurez-vous de forcer deux garbage collections d'abord si vous voulez des résultats assez précis/consistants.
Pour des raisons d'efficacité, Java permet généralement aux déchets de remplir toute la mémoire avant de forcer une GC, et même dans ce cas, il ne s'agit généralement pas d'une GC complète, de sorte que vos résultats pour runtime.freeMemory() seront toujours quelque part entre la quantité "réelle" de mémoire libre et 0.
La première CG n'obtient pas tout, elle obtient la plupart des choses.
Le bon côté est que si vous faites juste l'appel freeMemory() vous obtiendrez un nombre qui est absolument inutile et varie largement, mais si vous faites 2 gc's d'abord c'est une jauge très fiable. Cela rend également la routine BEAUCOUP plus lente (en secondes, éventuellement).
Java Temps d'exécution peut signaler l'utilisation de la mémoire de la JVM. Pour la consommation du CPU, vous devrez utiliser un utilitaire externe, comme top d'Unix ou le gestionnaire de processus de Windows.
JConsole est un moyen simple de surveiller une application Java en cours d'exécution. Vous pouvez également utiliser un profileur pour obtenir des informations plus détaillées sur votre application. J'aime utiliser le NetBeans Profiler pour ça.
0 votes
Ces liens vous seront peut-être utiles : javaworld.com/javaworld/javaqa/2002-11/01-qa-1108-cpu.html roseindia.net/javatutorials/
1 votes
Duplication possible de Utilisation de Java pour obtenir des informations sur le système d'exploitation