linux:每个进程监视器,每 10 分钟一次,可访问历史记录

linux:每个进程监视器,每 10 分钟一次,可访问历史记录

我确实不知道更好的方式来提出我的问题,因此你得到了一个名字很糟糕的问题。

我会解释我想要做什么,也许这会对你有帮助。

我想让我的 Linux 机器持续监控(每 10 分钟一次)机器上的所有进程。我需要的每个进程的信息是名称、CPU 使用率、分配的(虚拟)内存和常驻(RAM)内存。

如果查看这些定期报告,它们看起来将是这样的:

PROCESS    CPU    RAM    VIRTUAL
name1    %    MB    MB
name2    %    MB    MB
...etc..etc

这些报告应以某种方式存储,以便我可以通过提供日期/时间范围(范围)在以后访问它们。例如,如果我想查看从 1.12.12 12:00:00 到 2.12.12 12:00:00 的进程历史记录,我可以 - 并且它应该为我提供这些日期/时间边界之间每 10 分钟的进程历史记录。

返回的格式并不重要,无论如何它都会由脚本处理,并且可以修改成我需要的任何格式。

到目前为止,我已经研究了一些东西,但还没有找到能明确满足我需求的东西。我搜索的内容包括:特区免费(1)返回顶部(1)..还有一些其他的东西。

这应该是一个简单的问题,我只需查看就可以看到所有这些信息htop,但我只需要一个工具每 10 分钟为我收集每个流程所需的字段,然后还让我根据日期/时间范围(范围)提取该数据的片段。

注意:我对 Linux 的经验有限,因此请提供详细信息。

注2:所需的输出将是这样的(收到所需范围后)

CPU USAGE BY PROCESS:
proc_nameA 1,2,2,2,2,2...... numbers represent % usage every 10 minutes...
proc_nameB 4,3,3,6,1,2......

与其他信息的想法相同。

答案1

尝试atop

它将每 5 或 10 分钟(取决于您的发行版为您选择的方式)记录所有这些系统信息,并将其作为守护进程放入二进制文件中。然后使用

atop -r

以交互方式查看当今标准日志文件的内容。它就像htop带有一些额外的 I/O 信息,可让您回到过去并查看当时发生的事情。按t前进,按Shift+t后退。

您还可以将其指向特定的时间范围。来自手册页:

With the flag -b (begin time) and/or -e (end time) followed by a time argument
of the form HH:MM, a certain time period within the raw file can be selected.

对于在原始文件中写入什么内容,没有过多的可配置性。

我建议您阅读更多 atop 的手册页以开始使用,例如阅读昨天的日志文件的内容。

以下是我的机器“zarafa”今天早上 7:35:40 到 7:45:40 之间的运行情况:

屏幕截图

相关内容