J'ai besoin de vérifier l'utilisation du processeur et de la mémoire pour le serveur en java, quelqu'un sait comment cela pourrait être fait?
java
operating-system
cpu
ram
Johnny Bou
la source
la source
Réponses:
Si vous recherchez spécifiquement de la mémoire dans JVM:
Cependant, ceux-ci ne doivent être considérés que comme une estimation ...
la source
la source
freeMemory
ici renvoie la quantité de mémoire disponible dans JVM qui est très différenteSi vous utilisez la JVM Sun et que vous êtes intéressé par l'utilisation de la mémoire interne de l'application (la quantité de mémoire allouée utilisée par votre application), je préfère activer la journalisation intégrée du garbage collection de la JVM. Vous ajoutez simplement -verbose: gc à la commande de démarrage.
À partir de la documentation Sun:
Pour plus d'informations, voir: http://java.sun.com/docs/hotspot/gc5.0/gc_tuning_5.html
la source
D' ici
la source
operatingSystemMXBean.getProcessCpuLoad();
? Selon la documentation Oracle, cette méthode renvoie "Renvoie" l'utilisation récente du processeur "pour le processus de la machine virtuelle Java." Pourtant, je vois une différence de nombre relativement importante entre votre méthode et cette méthode.OperatingSystemMXBean
classes. L'un est l'interface fournie dansjava.lang
. Mais il existe également une autre version, qui prolonge celle-cicom.sun.management
. C'est la méthode dont je parlais à partir de làOperatingSystemMXBean
JMX, les MXBeans (ThreadMXBean, etc.) fournis vous donneront les utilisations de la mémoire et du processeur.
la source
Pour l'utilisation de la mémoire, ce qui suit fonctionnera,
Pour l'utilisation du processeur, vous devrez utiliser une application externe pour la mesurer.
la source
Depuis Java 1.5, le JDK est livré avec un nouvel outil: JConsole qui peut vous montrer l'utilisation du processeur et de la mémoire de toute JVM 1.5 ou ultérieure. Il peut faire des graphiques de ces paramètres, exporter vers CSV, afficher le nombre de classes chargées, le nombre d'instances, les blocages, les threads etc ...
la source
Si vous utilisez la solution runtime / totalMemory qui a été publiée dans de nombreuses réponses ici (je l'ai beaucoup fait), assurez-vous de forcer d'abord deux garbage collection si vous voulez des résultats assez précis / cohérents.
Pour plus d'efficacité, Java permet généralement aux ordures de remplir toute la mémoire avant de forcer un GC, et même dans ce cas, ce n'est généralement pas un GC complet, donc vos résultats pour runtime.freeMemory () se situent toujours quelque part entre la quantité "réelle" de mémoire libre et 0 .
Le premier GC ne comprend pas tout, il en obtient l'essentiel.
L'avantage est que si vous faites simplement l'appel freeMemory (), vous obtiendrez un numéro qui est absolument inutile et qui varie considérablement, mais si vous faites d'abord 2 gc, c'est une jauge très fiable. Cela rend également la routine BEAUCOUP plus lente (en secondes, éventuellement).
la source
L' objet Runtime de Java peut signaler l'utilisation de la mémoire de la JVM. Pour la consommation du processeur, vous devrez utiliser un utilitaire externe, comme le top Unix ou Windows Process Manager.
la source
Voici un code simple pour calculer l'utilisation actuelle de la mémoire en mégaoctets:
la source
J'ajouterais également la manière suivante pour suivre la charge du processeur:
Vous pouvez en lire plus ici
la source
JConsole est un moyen simple de surveiller une application Java en cours d'exécution ou vous pouvez utiliser un Profiler pour obtenir des informations plus détaillées sur votre application. J'aime utiliser le NetBeans Profiler pour cela.
la source
Le profileur YourKit Java est une excellente solution commerciale. Vous trouverez de plus amples informations dans la documentation sur le profilage du processeur et le profilage de la mémoire .
la source
Si vous utilisez Tomcat, consultez Psi Probe , qui vous permet de surveiller la consommation de mémoire interne et externe ainsi que de nombreux autres domaines.
la source
Pour Eclipse, vous pouvez utiliser TPTP (Test and Performance Tools Platform) pour analyser l'utilisation de la mémoire et etc. plus d'informations
la source