Mem-Monitor is a utility that gives periodic feedback on the memory and CPU usage of a program. It follows forks and execs using LD_PRELOAD. It currently works on Linux but should be easy to port to other Unices.
Every 0.5 seconds, Mem-Monitor checks the memory usage of the program and its children. The memory usage is printed if it has increased by at least 33% since the last time it was printed, or it has been 30 seconds. (These values are configurable.)
$ mem-monitor g++ -O3 test/test.cc:
## MM [2006-10-16 04:34:40Z g++-4.1/20922 vsize: 0.3 MB user:0.0 s sys:0.0 s wall:0.0 s] ## MM [2006-10-16 04:34:40Z g++-4.1/20922 vsize: 2.0 MB user:0.0 s sys:0.0 s wall:0.0 s] ## MM [2006-10-16 04:34:40Z g++-4.1/20923 vsize: 2.0 MB user:0.0 s sys:0.0 s wall:0.0 s] ## MM [2006-10-16 04:34:41Z cc1plus/20923 vsize: 52.9 MB user:1.3 s sys:0.1 s wall:1.5 s] ## MM [2006-10-16 04:34:42Z cc1plus/20923 vsize: 85.8 MB user:2.2 s sys:0.2 s wall:2.5 s] ## MM [2006-10-16 04:34:44Z cc1plus/20923 vsize: 120.4 MB user:4.1 s sys:0.3 s wall:4.5 s] ## MM [2006-10-16 04:34:47Z cc1plus/20923 vsize: 163.1 MB user:6.3 s sys:0.4 s wall:7.0 s] ## MM [2006-10-16 04:34:49Z cc1plus/20923 vsize: 264.6 MB user:8.6 s sys:0.5 s wall:9.5 s] ## MM [2006-10-16 04:34:57Z cc1plus/20923 vsize: 362.9 MB user:16.3 s sys:0.8 s wall:17.5 s] ## MM [2006-10-16 04:35:02Z cc1plus/20923 vsize: 490.8 MB user:21.0 s sys:1.1 s wall:22.5 s] ## MM [2006-10-16 04:35:06Z cc1plus/20923 vsize: 659.4 MB user:24.8 s sys:1.2 s wall:26.5 s] ## MM [2006-10-16 04:35:08Z collect2/21046 vsize: 1.9 MB user:0.0 s sys:0.0 s wall:28.3 s] ## MM [2006-10-16 04:35:08Z ld/21047 vsize: 0.6 MB user:0.0 s sys:0.0 s wall:28.3 s]
mem-monitor [--outfd FD] -- command...
Runs COMMAND and monitors memory and CPU usage. Output is sent to FD 2 (stderr) by default.mem-monitor [--outfd FD] --pid PID
Attach to running process PID. This currently does not follow children. Following children of a process who isn't one's own child requires using ptrace(2) instead of LD_PRELOAD. This may be implemented in a future version of Mem-Monitor.
Browse/checkout the Subversion repository:
svn checkout http://svn.cubewano.org/repos/mem-monitor/trunk/mem-monitor/
Copyright (C) 2006 Karl Chen <quarl@quarl.org>.