进程正在占用所有 CPU 时间

进程正在占用所有 CPU 时间

是否有任何神奇的命令可以跟踪哪个进程正在启动这个占用 100% CPU 时间的 Perl 任务?我在几台安装了 JBoss AS 的机器上都遇到这个问题。

在此输入图像描述

答案1

您可以procstat在 FreeBSD 上使用。

procstat $PID

例如,为您提供流程概述

 PID  PPID  PGID   SID  TSID THR LOGIN    WCHAN     EMUL          COMM        
8898  8894  1977  1977     0   6 tant     usem      FreeBSD ELF64 chrome

PPID 是可能已启动该进程的父进程的 ID。

procstat -f $PID

你会得到由$PID

procstat -c $PID

给出该过程的参数。

这个过程看起来很可疑。您不需要/usr/bin/javad检查该进程是否确实打开了该文件或者程序是否覆盖了第一个参数。

答案2

您可以通过运行查看有关该命令的更多信息

ps l 39181

这将显示命令的参数,其中通常包括正在运行的脚本的名称。

如果您想留在top,您可以按f并选择您想查看的信息字段。查找 PPID。这是生成 perl 进程的进程的 ID。

答案3

您可以执行 aps -fp processid查看父进程。用于ps -fjp pid查看进度组 ID,组 ID 将为您提供进程的层次结构。

编辑:正如下面的评论所指出的(我还没有评论权限),这只适用于 Linux。

答案4

顶部是一个漂亮的命令,它将列出所有正在运行的进程、CPU 利用率百分比、内存利用率百分比以及所有其他重要信息。

相关内容