java 占用了 100% 的 CPU,无法停止

java 占用了 100% 的 CPU,无法停止

我遇到过 java 进程

  1. 无需任何重启即可启动(但不应运行任何 Java 应用程序),并且
  2. 一段时间后 CPU 使用率达到 100%(AMD Phenom II X4)

我用 gnome 系统监视器将其杀死。几秒钟后,该进程再次出现,再次占用 100% 的 CPU(状态:睡眠)。

我也对以下事实感到恼火:

$ jobs

没有返回任何内容。我会尝试

sudo jobs

为了好玩,收到了消息

sudo:作业:未找到命令

但 jobs 当然已安装。

我已通过软件中心安装了 OpenJDK Java 6 Runtime。

我该如何

  • 查找是否仍有使用 java 的程序正在运行
  • 为什么该过程占用那么多 CPU?

答案1

jobs仅显示当前 shell 拥有的进程(这是 shell 内置函数 —— 这就是为什么您不能使用 sudo 来运行它,因为 sudo 只运行可执行程序)。除非您在后台启动它,否则它通常不会显示任何内容。请参阅help jobs

您可以使用以下命令检查是否有其他 Java 进程正在运行:

ps aux | grep java

ps aux | grep java | grep -v grep这将搜索命令行执行中包含字符串“java”的任何正在运行的进程,包括 grep。如果需要,可以使用 来消除 grep 。

此外,当某个进程占用大量 CPU 时,您通常可以使用程序发现它top,按下P以按 %CPU 排序:

顶部显示 CPU 密集型进程

您还可以使用M按内存使用情况排序,并使用键<>更改用于排序的当前字段。

现在,为什么一个进程占用了多少 CPU 是一个很难用一般方式回答的问题。它可能正在执行有用的操作,也可能只是陷入无限循环,通常只有通过阅读源代码才能找出原因。如果您考虑在浏览器中运行 Java 插件的 Java JRE,其 CPU 负载高度依赖于您正在运行的程序的性质。

相关内容