流程调度信息提取

流程调度信息提取

我想提取每个处理器核心上利用率最高的进程,然后将其信息(PID 等)输出到文件中。如何使用 top 或 ps 命令来做到这一点?

谢谢。

答案1

怎么样

ps -k -pcpu -O pcpu,psr 

k 标志是排序键,即 CPU 百分比。 Capital O 更改输出以添加 CPU 利用率百分比以及进程运行的当前处理器/CPU。你会得到如下输出:

  PID %CPU PSR S TTY          TIME COMMAND
15049  5.8   2 S tty2     00:00:28 chrome
14808  4.3   1 S tty2     00:00:21 chrome
14448  3.9   5 S tty2     00:00:21 gnome-shell
15234  1.8   5 S tty2     00:00:08 chrome
14896  1.5   2 S tty2     00:00:07 chrome
14322  1.2   0 S tty2     00:00:06 Xorg

cpu 百分比是时间列除以实际时间。如果您有一个繁忙的进程然后闲置,您可能会得到奇怪的结果(但其总体平均值仍然很高或较低,具体取决于您的期望)。

要得到一些东西来回答“是什么让我的 CPU 在过去几秒钟内保持忙碌”,那么 top 是一个更好的工具。

另请注意,进程会在 CPU 上来回跳动,因此有时很难确定 CPU 运行过热的原因。您通常希望这可以将负载分散到他们身上。

答案2

PSOUTFILE=/tmp/ps-out.txt
ps -ef| sort -r  -k7 | head -2 >> ${PSOUTFILE}

上面的这段获取顶部一个进程的信息和标题行,解释每一列引用的内容并写入指定的文件。如果不想打印列标题行,可以这样修改:

PSOUTFILE=/tmp/ps-out.txt
ps -ef| sort -r  -k7 | head -2 | tail -1 >> ${PSOUTFILE}

如果这不是您想要的,您需要更详细地提出您的问题。请修改您的原始帖子以包含更多详细信息,解释您希望在此文件中看到的内容。

相关内容