Java использует 100% CPU и не может быть остановлен

Я столкнулся с тем, что Java-процесс

  1. запущен без какого-либо пересмотра (пока не должно быть запущено java-приложение) и
  2. через некоторое время использует 100% процессора (AMD Phenom II X4)

Я убиваю его с помощью системного монитора GNOME. Через несколько секунд процесс появляется снова, снова используя 100% ЦП (состояние: спящий режим).

Я также раздражен тем фактом, что

$ jobs

ничего не возвращает. Я попробовал

sudo jobs

для удовольствия и получил сообщение

sudo: jobs: команда не найдена

но работа конечно установлена.

Я установил OpenJDK Java 6 Runtime через Центр программного обеспечения.

Как я могу

  • узнать, есть ли еще запущенная программа, использующая Java
  • почему процесс занимает столько процессора?

1 ответ

Решение

jobs показывает только процессы, принадлежащие текущей оболочке (это встроенная функция оболочки - и поэтому вы не можете запустить ее с помощью sudo, которая запускает только исполняемые программы). Обычно он ничего не показывает, если вы не запустили его в фоновом режиме. Увидеть help jobs,

Вы можете проверить, есть ли другие процессы Java, работающие с:

ps aux | grep java

При этом выполняется поиск любого работающего процесса, который имеет строку "java" в своей командной строке, включая grep. Вы можете устранить grep используя ps aux | grep java | grep -v grep, если ты хочешь.

Кроме того, когда процесс потребляет много ресурсов процессора, его обычно можно обнаружить с помощью программы. top, нажимая P, чтобы упорядочить по%CPU:

верхняя часть показывает интенсивный процессорный процесс

Вы также можете использовать M для сортировки по использованию памяти и использовать клавиши < и >, чтобы изменить текущее поле, используемое для сортировки.

Теперь, ПОЧЕМУ процесс требует много ресурсов процессора - действительно сложный вопрос, на который можно ответить в общем виде. Он может делать полезные вещи или просто зависать в бесконечном цикле, обычно только читая исходный код, который вы можете узнать, какой. Если вы рассматриваете Java JRE, который запускает плагины Java в вашем браузере, его загрузка процессора сильно зависит от природы программы, которую вы запускаете.

Другие вопросы по тегам