是否有任何可能的命令或方法来检查哪个进程在过去 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