为了找到性能问题,我使用累积模式下的“top”命令 TIME 列(这对我来说很重要,因为它还捕获所有执行的小子进程)
当软件发生任何变化时,我想看到其影响,例如 1 小时后。
如何重置或清除 TIME+ 计数器以从头开始?
重新启动整个系统不是一个选择。
答案1
如果我理解你的问题,基本上 top 命令默认显示非累积时间:
Task_Area_defaults
...
* ’S’ - Cumulative time Off (no, dead children)
...
TIME+ 列本身以百分之一秒为单位显示 CPU 时间,与 TIME 相同,但粒度更细。
不幸的是,重置特定进程时间的唯一方法是重新启动该进程本身,因为 Linux 内核会跟踪进程的创建时间和其在生命周期内消耗的 CPU 时间。
希望有所帮助。
答案2
top
命令只是告诉你值的信使,值本身来自操作系统和进程,而不是来自命令top
。
重置时间值的唯一方法是重新启动该过程。
我认为让您的监控更加详细的唯一方法是尝试不同的方法。您可以使用sysstat
包及其sadc
守护程序来收集数据,并sar
使用sa
命令根据这些统计数据为您提供操作系统/进程级统计数据。您可能希望通过获取进程信息并使用或其他工具snmpd
绘制图表。您可能希望使用 Linux 内核框架、其守护程序和各种报告工具。无论如何,是时候让您思考一些不同于普通的旧东西了。mrtg
collectd
audit
auditd
top