我发现我的一个网站在特定时间的平均负载较高。我设置了警报,但不清楚导致高负载的原因,因此我想在警报响起时捕获系统的状态。
有什么好方法可以捕获相关信息,以便我可以事后确定导致负载的原因?
这是 linux/ubuntu、apache、mod_python/django、mysql。
答案1
我喜欢使用一个名为 atop 的程序。http://www.atoptool.nl/
与 top 类似,但它还会以用户定义的间隔抓取 atop 窗口的快照。设置INTERVAL=60
为/etc/atop/atop.daily
获取 1 分钟快照。运行atop -r /var/log/atop/atop_20100214
以查看特定日期的 1 分钟间隔。使用t和T键可向前和向后查看时间。这些文件路径适用于 CentOS,您的路径可能略有不同。
答案2
如果 Ubuntu 有 sar,那么它可以捕获系统磁盘使用情况、vm 活动等。一旦您设置了计算机来收集数据,您就可以运行繁忙和非繁忙时间的报告来比较活动。Apache 有 mod_status,mysql 有一些统计工具,您可能可以通过 cron 定期从它们那里获取一些信息。