应用程序只在早上变得非常缓慢:跟踪罪魁祸首的工具?

我有两个Ubuntu服务器:一个充当数据库服务器(MySQL)和文件服务器和应用程序服务器。 使用这三个服务,应用程序已经完美地运行了好几个月。

现在我们已经发现,每天早上7:45左右真的会变慢。 一小时之后,一切都变得快速而且可用,无需人工干预。 我正在追查这个问题

有没有什么工具来监视和loggingCPU,RAM,磁盘,networking使用? 我应该如何快速find问题?

快速解决将是孤立的问题,并find罪魁祸首。
检查当时正在运行的cronjob,并将它们重新安排到不同的时间。
如果你能负担得起,在这段时间内禁用networking。
如果问题仍然存在,请closures所有不需要的服务。
正确的方法是查看已经收集的数据作为过程的一部分。正如已经说过的那样,如何做到这一点有很多select。我们使用仙人掌graphics系统,因为这给出了很好的视觉表示,你可以绘制几乎任何东西

我发现sar善于指出缓慢的可能原因。 在两个系统上安装atsar软件包。 在运行了一天之后,您应该有数据查看系统运行缓慢时哪些资源正在被大量使用。 数据将被收集在/var/log/atsar ,最终每天会有31个文件。 这是检查加载问题的好工具。

我发现munin是整体监控服务器的好工具。 我尽量不要在可能超载的系统上运行munin服务器。 在你的情况下,你会想要第三个主机作为服务器。 munin每五分钟收集每个客户端的数据。 这些数据然后被转换成graphics。 从图中可以很容易看出哪些资源负载最重。 这可以帮助加快然后调查与sar

要进行快速testing,只需login到每个服务器并在问题期间运行即可。 它有助于更​​早地运行,以了解正常负载的样子。 如果您的平均负载长时间超过服务器上的内核数量,则可能确定服务器导致速度变慢。 顶行可用于识别是CPU(高用户%)还是某些其他资源(高系统%或高等待%)。 您还可以看到内存使用情况。

stream程统计软件包acct可以告诉您哪个stream程正在完成。 您将需要运行accton on来启用进程记帐。 可以运行命令dump-acct以可读格式转储数据。 man dump-acct包含有关输出格式的信息。 您可能需要在7:45左右开始的stream程。

有没有什么工具来监视和loggingCPU,RAM,磁盘,networking使用?

你不会相信可用的工具的数量。 我使用的是Nagios, sariotoptopps ,mrtg和一些自定义脚本。 但他们只是想告诉你系统的速度有多慢 – 不是为什么速度慢。

有各种各样的原因,它可能会慢 – 在机器上发生的东西(例如备份导致caching刷新,批处理窃取CPU周期…),其他地方发生的东西(networking拥塞,大部分stream量从本地到海外),更不用说在系统运行的时候没有什么东西(低stream量的stream量会导致caching丢失,从早期的错误configuration状态防火墙撤出连接)。