我确实不知道更好的方式来提出我的问题,因此你得到了一个名字很糟糕的问题。
我会解释我想要做什么,也许这会对你有帮助。
我想让我的 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 之间的运行情况: