是否有实用程序可以查找特定时间段内的系统负载/平均负载来源?

是否有实用程序可以查找特定时间段内的系统负载/平均负载来源?

通过运行top、htop、uptime等,我们可以看到平均负载为三个值,分别表示最近1/5/15分钟的平均负载(好吧,不是真的,但这不是这里的问题)。

有时我会注意到过去 15 分钟的平均负载相当高,但当前负载却很低。是否有实用程序/程序可以列出过去 1/5/15 分钟(或其他类似时间段)消耗最多 CPU 时间的进程(即使它们不再存在)?

我知道平均负载也可能是由等待 I/O 的进程引起的,但我最感兴趣的是查看最耗 CPU 的应用程序(尽管能够查看历史 I/O 也很好)。

据我所知,运行 htop 并按时间排序对我没有帮助,因为如果计算机已经打开了一段时间,最高值不一定与最近的过去有任何关系。

答案1

我建议使用atop.它是一个守护进程,默认情况下每 10 分钟收集一次所有“热门”信息,您可以及时返回查看这些“热门”快照。根据您的需要调整默认间隔设置(如果设置得更频繁,会消耗更多磁盘空间)。

就在昨天,我回答过类似的问题,其中我包含了一个非常简短的操作方法。

答案2

根据 htop 的指示判断,我假设您正在运行 Linux。

您可以查看一个名为的实用程序萨尔,它在 Solaris 上经常使用,但我很少看到它在 Linux 上使用。它能够记录一天的系统活动,然后以不同的时间间隔进行报告。您还可以看看虎鲸但数据统计仍然是每个系统。

如果您需要每个流程的数据,显然有付费产品,例如团队探索

答案3

除非您设置了数据收集工具,否则答案是否定的,没有这样的内置实用程序可以记录不同资源的使用情况。

另一方面,每个 Linux 安装都附带 sar 实用程序,它可以解决您正在讨论的主题。我不会详细介绍如何收集数据以及如何提取这些数据以进行报告,因为每个服务器和每个组织的需求都是不同的。

登录到您的服务器并开始阅读sar命令的手册页。然后用 google 搜索一下如何有效地使用 sar。在很短的时间内,您将能够设置您的数据收集实用程序。当你遇到问题时,你只需回溯指定时间段的 sar 日志,找出哪个资源的利用率恰好高于平时,等等。

如果您的利用率持续达到 75% 或更高,并且没有其他方法可以向他们证明,那么它是说服管理层投资一些资金购买/升级硬件的宝贵工具。如果我没记错的话,甚至还有 Excel 宏可以根据原始 SAR 数据制作图形(读作管理用语)报告。

相关内容