非交互地识别占用大量 CPU 时间的进程

非交互地识别占用大量 CPU 时间的进程

我有一个奇怪的问题:有时当我的显示器关闭时,风扇运转的声音很大,即使据我所知,系统上的 CPU 使用率不应该很高。

但是,一旦我移动鼠标并开始top尝试诊断此问题,无论是什么活动,都会停止;随着风扇的停歇。

所以我想要一个脚本/程序/方法,我可以在某个时间点启动,让计算机在该程序记录进程的CPU活动时无人值守,然后当我恢复操作计算机时,我应该能够从中读取程序的报告我很快就会知道哪些过程让粉丝们努力工作。

编辑:一个chromium进程在屏幕关闭时使风扇运转声音很大。但不知道为什么。

答案1

您可以每隔几秒钟运行一次“ps”,以及 loadavg 的基本转储,以简化搜索。将其保存为“psdump.sh”并使其可执行chmod +x psdump.sh

#!/bin/bash

while true; do
    sleep 15
    date
    cat /proc/loadavg
    ps Swaux | awk '$3!=0.0 {print}'
done

您可以从终端运行该脚本,以便将其保存到文件并进入后台:

/home/lserni/psdump.sh > /home/lserni/psdump.log

然后,就等着吧。该文件将显示类似以下内容:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  5.0  0.0 185412  5272 ?        Ss   Jan30 15340:14 /lib/systemd/systemd --system --deserialize 27
root        63  1.6  0.0      0     0 ?        S    Jan30 5042:59 [kswapd0]
root      1930  1.5  0.0  29008  2464 ?        Ss   Jan30 4816:50 /usr/sbin/cron -f
root      7446  0.1  0.0 3964564 60880 ?       Sl   Jan30 425:27 /opt/dell/srvadmin/sbin/dsm_om_connsvcd -run
mysql     7509  3.3 57.3 41322444 37757724 ?   Ssl  Aug17 599:39 /usr/sbin/mysqld
root      9634 17.1  4.9 6141588 3234672 ?     Ssl  Jan30 52154:34 /usr/local/bin/antani

日志文件将仅报告 CPU 百分比非零的进程(包括子进程)。您感兴趣的列可能是 %CPU 和累积时间(第 3 列和第 10 列)。

答案2

这应该可以做到:

Top 有一个“批处理”模式,用于通过-b.所以这个脚本每 10 秒记录一次顶部输出:

#! /bin/sh

set -u

recording=/tmp/top_recording.txt

top_interval_seconds=10

top -b -d "$top_interval_seconds" > "$recording"

遗憾的是,除了前几个进程/任务之外的所有进程/任务都是多余的,因此我使用 Tr 和 Sed 查看报告,只留下 Top 生成的每个快照的前三个进程:

#! /bin/sh

set -u

recording=/tmp/top_recording.txt

regexp_first_few_lines='top'\
'[^\x00]*\x00'\
'[^\x00]*\x00'\
'[^\x00]*\x00'\
'[^\x00]*\x00'\
'[^\x00]*\x00'\
'[^\x00]*\x00'\
'[^\x00]*\x00'\
'[^\x00]*\x00'\
'[^\x00]*\x00'\
'[^\x00]*\x00'

export LC_ALL=C

< "$recording" \
   tr '\n' '\0' | \
   sed -E -e 's/\x00top/\ntop/g' | \
   sed -E -e 's/^('"$regexp_first_few_lines"')(.|\x00)*$/\1/' | \
   tr '\0' '\n' | \
   less

要在 Less 中查找高 CPU 活动进程,请使用:

/[0-9] [A-Za-z] ([^ ]| [^ ]|  [987])

相关内容