是否有任何实用程序可以找到特定时期内系统负载/平均负载的来源?


12

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

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

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

据我所知,运行htop和按时间排序对我没有帮助,因为如果计算机启动了一段时间,则最高值不一定与最近的记录有关。


您正在运行哪个操作系统?
卡尔森2012年

我倾向于尝试不同的GNU / Linux发行版,但大多数情况下我使用openSUSE。
Quantumboredom

Answers:


11

我建议使用atop。默认情况下,这是一个守护程序,每10分钟收集一次所有“最重要”信息,您可以回到过去查看这些“最重要”快照。根据您的需要调整默认间隔设置(如果更频繁地设置,则会消耗更多的磁盘空间)。

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


顶部似乎绝对完美,非常感谢!
Quantumboredom

因此,它不会显示特定的pids引起的负载值,但是会以某种方式显示出来,就像我们最麻烦的应用程序对cpu的使用顺序一样?我想知道atop信息如何帮助猜测负载值的组成方式(汇总)?换句话说,(of htop)的算法是如何构成平均负载的?为什么不按进程显示平均负载?(我认为这可能值得一个新话题吗?)
Aquarius Power

@AquariusPower那确实值得一个新的问题。机器上的平均负载是根据许多因素计算出来的,与这个问题并不真正相关。
gertvdijk

7

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

您可以看一下名为sar的实用程序,该实用程序在Solaris上经常使用,但在Linux上却很少见到。它能够记录一天的系统活动,然后以不同的时间间隔报告它。您也可以查看Orca,但数据统计信息仍然是每个系统的。

如果您需要每个过程数据,那么显然有类似TeamQuest这样的付费产品。


4

除非您设置数据收集工具,否则答案是否定的,否则就没有这样的内置实用程序,该实用程序将记录不同资源的利用率。

另一方面,每个Linux安装都带有sar实用程序,该实用程序可以解决您所讨论的主题。由于每个服务器和每个组织的需求都不相同,因此我将不涉及任何有关如何收集数据以及如何提取此数据以进行报告的细节。

登录到服务器并开始阅读sar命令的手册页。然后在Google上搜索如何有效使用sar。而且在短时间内,您将能够设置数据收集实用程序。遇到问题时,您只需在指定的时间段内回溯到sar日志中,然后发现恰好比平时高利用了哪个资源,等等。

如果您持续不断地将利用率提高到75%或更高,并且没有其他方法向他们证明这一点,那么它是说服管理层投资一些钱来购买/升级硬件的宝贵工具。如果我没有记错的话,甚至还有excel宏可以从原始sar数据中制作图形化报告(称为管理用语)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.