meteor-heapsave
Take Heapdump and save them into S3
Install
mrt add heapsave
Usage
1var save = HeapSave.toS3('access-key', 'access-secret', 'bucket'); 2 3// save heapdumps per every hour 4Meteor.setInterval(function() { 5 var dumpName = 'myapp-' + Date.now(); 6 save(dumpName); 7}, 1000 * 60 * 60);
Notice
- In order to get a heapdump you need to have at least twice of Memory on the system.
So it's better to turn on swap if you are running under a low memory server.
- Every heapdump will cause v8 to call
gc()
. It is a blocking operation. - Heapdump will be saved to disk using a child_process.
- Heapdump will be compressed before sending it to s3. Compression also done via a child process.
- refer node-heapdump project for more information
Analyzing
Heapdumps can be analyzed using Chrome dev tools.
- download your dumps from s3
- untar them
- load them into chrome dev tool under "profiles" tab
- learn how to analyze heap and detect memory leaks