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