web-dev-qa-db-fra.com

java utilise 100% de la capacité de traitement et ne peut pas être arrêté

J'ai rencontré que le processus Java est

  1. démarré sans reasing (aucune application Java ne doit être exécutée) et
  2. après un certain temps utilise 100% de la CPU (AMD Phenom II X4)

Je le tue avec le moniteur de système gnome. Après quelques secondes, le processus réapparaît, en utilisant à nouveau 100% de la CPU (statut: veille).

Je suis également irrité par le fait que

$ jobs

ne retourne rien. Je vais essayer

Sudo jobs

pour le plaisir et a le message

Sudo: jobs: commande introuvable

mais les travaux sont bien sûr installés.

J'ai installé OpenJDK Java 6 Runtime via le Centre logiciel.

Comment puis-je

  • savoir s'il y a toujours un programme en cours d'exécution qui utilise Java
  • pourquoi le processus prend autant de temps processeur?
2
32bitfloat

jobs affiche uniquement les processus appartenant au shell actuel (c'est une fonction intégrée du shell - et c'est pourquoi vous ne pouvez pas l'exécuter avec Sudo, qui exécute uniquement des programmes exécutables). Il ne montre généralement rien, sauf si vous l'avez commencé en arrière-plan. Voir help jobs.

Vous pouvez vérifier si d'autres processus Java sont en cours d'exécution avec:

ps aux | grep Java

Ceci recherche tout processus en cours d'exécution comportant la chaîne "Java" lors de l'exécution en ligne de commande, y compris grep. Vous pouvez éliminer grep en utilisant ps aux | grep Java | grep -v grep, si vous le souhaitez.

De plus, lorsqu'un processus consomme beaucoup de temps processeur, vous pouvez généralement le localiser à l'aide du programme top, en appuyant sur P commander par% CPU:

top showing a CPU intensive process

Vous pouvez aussi utiliser M pour trier par utilisation de la mémoire et utiliser les touches < et > pour changer le champ actuel utilisé pour trier.

Maintenant, POURQUOI un processus prend beaucoup de temps CPU est une question très difficile à répondre de manière générique. Il peut s'agir de choses utiles ou simplement bloquées sur une boucle infinie, généralement en lisant le code source uniquement. Si vous envisagiez d'utiliser le JRE Java qui exécute les plugins Java de votre navigateur, la charge de son processeur dépend fortement de la nature du programme que vous exécutez.

2
elias