Top 命令

Top 命令

是否有任何可能的命令或方法来检查哪个进程在过去 24 小时内导致了高 CPU 利用率,因为昨晚 11:30 日期:-30-nov-2022 我们收到警报说 CPU 利用率很高,因此需要找出哪个进程导致了高利用率。

答案1

特区

您可以使用特区。它包含在 sysstat 中。要安装:

sudo apt-get install sysstat

接下来,通过编辑 /etc/default/sysstat 并将“ENABLED”设置为 true 来启用它。

这样做可以监控您的系统并每 10 分钟生成一份报告,并在一周后轮换。您可以通过编辑 /etc/cron.d/sysstat 上的 sysstat crontab 或更改 /etc/sysstat/sysstat 上的 sysstat 设置中的轮换设置来修改此行为。

您可以使用以下命令生成实时报告:

sar -u 1 3

sysstat 将每分钟收集后台 CPU 使用率数据,并将其保存到 /var/log/sysstat/。然后,您可以使用电子表格程序或 sargraph 等自定义工具导入此数据进行分析。

在顶上

另一种方法是使用在顶上它能够将原始计数器存储在文件中,以便在系统级别进行长期分析,并且流程级别默认情况下,每日日志文件会保留 28 天。可以使用 atopsar 命令从日志文件生成系统活动报告。

atop 可在 ubuntu 存储库中找到:sudo apt install atop

答案2

Top 命令

批处理模式顶部

top -b -n 1

然后用 Sed 把它捞出来

top -b -n 1 | sed -n 8,8p

答案3

直接访问日志文件

/var/log/syslog

使用 grep 来缓和

cat /var/log/syslog | grep Nov | grep 30 | grep  11: | grep pid=

答案4

处理命令

进程状态 (ps)

ps
    ps -eo lstart,pid,时间,用户,通信,pcpu |\
    复制代码
    grep 十一月|\
    删除 pm |\
    复制代码
    排序 -n -k 10 -r |\
    标题 1

说明

ps(进程状态)
-e(所有进程)
-o(格式化输出)
lstart (长启动)
pid(进程标识)
時間(時間)
用户(用户)
comm(命令)
pcpu(CPU 使用率百分比)

输出通过管道传输到另一个程序,grep。

复制代码grep 十一月 |删除 pm | grep 11

然后按数字和包含 CPU 百分比的列进行排序

 
排序-n-k 10-r
-n(数字)
-k(列)
-r(反向)

然后通过管道传输到 head 以仅允许第一行通过

标题 1

相关内容