Santosh Garole Asked: 2019-03-26 05:58:48 +0800 CST2019-03-26 05:58:48 +0800 CST 2019-03-26 05:58:48 +0800 CST 如何找到特定时间的最高内存和 CPU 消耗进程? 772 我检查了 sar 报告,发现 CPU 和内存在特定时间(例如前一天)得到了更多的利用。 是否可以找到占用大量 CPU 和内存的进程?我们如何发现哪个进程正在消耗该内存和 CPU。 cpu memory 4 个回答 Voted Best Answer Archemar 2019-03-26T07:07:41+08:002019-03-26T07:07:41+08:00 不。 除非您设置了一些(复杂的)监控,否则一旦进程退出,您将无法找出哪个进程使用了 CPU。 没有像桌子这样的“标准”东西 exec path;exec name;stime,etime,%sys,%io,%wait,%idle,... 您必须在执行期间捕获该过程。 ron 2019-03-26T11:32:50+08:002019-03-26T11:32:50+08:00 crontab -e # min hr day month day_of_week # every minute run : 1 * * * * /root/watch_processes.sh 一次手动执行:mkdir /root/process_watch 创建简单的脚本/root/watch_processes.sh #!/bin/bash # %cpu pid command args ps -eo "%C %P %U %c %a" > /root/process_watch/`date +%Y%m%d_%H%M` 上面将每分钟创建一个文本文件,只有日期作为文件名,但它们都将位于给定文件夹下,在上面的示例中为/mkdir/process_watch. 相应调整。 http://linuxcommand.org/lc3_man_pages/ps1.html 根据需要调整ps -eo每个流程的输出,使用%C %P %U %c %a将产生这 5 列数据 中央处理器 % 进程号 用户名 命令运行 给命令运行的参数 在每个文件中,您将在第一列中获得很多 0.0 的列表。有人擅长awk或sed可以在上面添加语法以过滤掉 0% cpu 进程。 就像有人说你必须在进程发生时捕捉它,一旦进程完成,就没有 pid# 的记录在什么时候占用了 %cpu。您将不得不像这样进行过程监视,然后返回并找到违规者。 Вадим Семенов 2019-11-04T08:30:33+08:002019-11-04T08:30:33+08:00 可以通过 help 查看过去的 CPU/Memory/Disk/Network 状态atop -r。然后按t或T以返回或前进。 Vivek Kanadiya 2019-03-26T06:43:51+08:002019-03-26T06:43:51+08:00 这可以通过将top命令的输出保存在文件中来实现: 脚本: NOW=`date "%y%m%d_%H%M%S"` ## to print the time. echo "$NOW" top > <PATH_TO_FILE> exit 0 完成后,您可以将此脚本放在 cron 中以在特定的内部运行!
不。
除非您设置了一些(复杂的)监控,否则一旦进程退出,您将无法找出哪个进程使用了 CPU。
没有像桌子这样的“标准”东西
您必须在执行期间捕获该过程。
crontab -e
一次手动执行:
mkdir /root/process_watch
创建简单的脚本
/root/watch_processes.sh
上面将每分钟创建一个文本文件,只有日期作为文件名,但它们都将位于给定文件夹下,在上面的示例中为
/mkdir/process_watch
. 相应调整。http://linuxcommand.org/lc3_man_pages/ps1.html
根据需要调整
ps -eo
每个流程的输出,使用%C %P %U %c %a
将产生这 5 列数据在每个文件中,您将在第一列中获得很多 0.0 的列表。有人擅长
awk
或sed
可以在上面添加语法以过滤掉 0% cpu 进程。就像有人说你必须在进程发生时捕捉它,一旦进程完成,就没有 pid# 的记录在什么时候占用了 %cpu。您将不得不像这样进行过程监视,然后返回并找到违规者。
可以通过 help 查看过去的 CPU/Memory/Disk/Network 状态
atop -r
。然后按t或T以返回或前进。这可以通过将
top
命令的输出保存在文件中来实现:脚本:
完成后,您可以将此脚本放在 cron 中以在特定的内部运行!