频繁出现 CPU 峰值,由未知的 Java 进程引起

频繁出现 CPU 峰值,由未知的 Java 进程引起

几个小时以来,我的笔记本电脑的 CPU 使用率频繁出现峰值,这是由于一个我不知道的 Java 进程造成的,即使它在我的会话中运行(见下面的第一行)。

在此处输入图片描述

峰值不定期出现(大约每 5 分钟一次),持续时间约为 20 秒。当它们出现时,我没有做任何特别的事情(实际上在 特克斯工作室)。即使我重启了系统,这个问题依然会继续存在。

我怎样才能缩小这个问题的原因范围?

编辑:谢谢安德鲁的回答,我发现峰值是由/proc/4146/exe -> /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java...引起的,但我不确定是什么引发了它。

答案1

在 中top,您可以按c显示整个命令,然后使用查看有关该命令的更多信息,其中可能包括正在执行的 Java 类的名称。

结果按其 CPU 使用率排序(%CPU)。如果您希望以其他方式对结果进行排序,您可以运行top -o <name of the colum>(例如top -o PID按进程 ID 排序,或top -o %MEM按使用的内存量对进程进行排序)。

您也可以运行ps aux | fgrep java来查看所有正在运行的java进程。

答案2

sudo ls -l /proc/PID/exe

将显示其位置,这将有助于定位相关的应用程序。

答案3

我花了一段时间试图找到一个占用了我所有 CPU 的类似进程。如果您最近在本地计算机上使用过 docker,请务必检查占用所有 CPU 的进程是否来自 docker。

sudo docker container ls` to see running containers

跑步

sudo docker stop <container-name>

阻止它,

sudo docker rm <container-name>

将其删除。

答案4

我遇到过类似的问题,Java 的 CPU 使用率超过了 100%,我在 Ubuntu 上运行 Eclipse IDE,并且在 Ubuntu 上启动了构建过程,这导致了此问题。

构建过程在后台运行,因为文件太多,导致 Java 的 CPU 使用率超过 100%。当我停止构建过程时,它就冷却下来并恢复正常。

然后我从 Eclipse IDE 菜单为项目设置自定义构建设置

Project > Build working set  > Select Working Set

现在创建一个自定义构建工作集并忽略具有太多不需要构建的文件的目录,然后为项目选择该新工作集。

希望它能对某人有所帮助。

相关内容