在Linux中记录内存占用

时间:2009-06-02 07:27:47

标签: linux unix memory-footprint

我们有记录内存的方法吗?在某种程度上 在流程完成后,我们仍然可以访问它。

我检查内存占用的典型方法是:

$ cat /proc/PID/status

但是在这个过程结束后它决不会存在。

3 个答案:

答案 0 :(得分:5)

你可以这样做:

watch 'grep VmSize /proc/PID/status >> log'

当程序结束时,您将在log中获得一段时间内存足迹列表。

答案 1 :(得分:4)

Valgrind有一个名为Massif的内存分析器,它提供有关程序内存使用情况的详细信息:

  

Massif是一个堆分析器。它通过获取程序堆的常规快照来执行详细的堆分析。它生成一个图表,显示随时间变化的堆使用情况,包括有关程序的哪些部分负责大多数内存分配的信息。该图由文本或HTML文件补充,该文件包含用于确定分配最多内存的位置的更多信息。 Massif运行程序比正常情况慢20倍。

答案 2 :(得分:2)

您可以使用munin +自定义插件进行录制。

这将允许您轻松监控和保存所需的过程信息并进行绘图。

Here's a related answer I gave at serverfault.com