如何追踪内存峰值?

如何追踪内存峰值?

我有一个在rackspace云(ubuntu 10.04)上运行的应用程序。由于某种原因,在过去 3 个晚上,记忆力一直在飙升,然后在大约 7 小时内趋于平稳,最后才下降。它似乎从午夜开始,一直持续到早上 7 点(忽略图表上的时间——它们有 4 个小时的偏差)。

替代文本

翻翻穆宁从图表中可以看出,mysql 中的活动似乎没有任何增加,并且在那段时间内以太网流量似乎根本没有激增(这似乎否定了机器人或爬虫之类的东西)。

linux 有哪些工具可以解决此类问题?

答案1

我不完全确定它会是一个完美的选择,但是流程会计包(主要名为 psacct 或 acct)能够记录谁(哪个帐户)运行什么(什么程序)。这可能会帮助您弄清楚在您指定的时间正在运行什么。

答案2

ps一般来说,除了定期记录并稍后分析流程活动之外,我不知道什么工具可以帮助您。

不过,我可以猜测你的图表上上午 6:00 左右的峰值,它可能是 Ubuntu 默认的每日 cron 作业。在我的机器上/etc/crontabdaily.d配置为在上午 6:25 运行。但你说我们应该忽略时间,所以明显的问题是,你有 cron 作业吗?

答案3

我对此类问题的默认答案是sar系统活动报告器) 来自系统状态包裹。

但据我所知,sar没有收集与ps.因此,也许 和 elmarcos 答案的组合sar(定期捕获 的输出ps)会有所帮助。

编辑:

pidstatSteve D在中提到过这个问题。这似乎更适合您的需求。

相关内容