An open API service indexing awesome lists of open source software.

https://github.com/mariusae/heapster

production heap profiling for the JVM. compatible with google-perftools.
https://github.com/mariusae/heapster

Last synced: 10 months ago
JSON representation

production heap profiling for the JVM. compatible with google-perftools.

Awesome Lists containing this project

README

          

[![Build Status](https://secure.travis-ci.org/mariusae/heapster.png)](http://travis-ci.org/mariusae/heapster)

# Heapster

Heapster provides an agent library to do heap profiling for JVM
processes with output compatible with
[Google perftools](https://github.com/gperftools/gperftools). The
goal of Heapster is to be able to do meaningful (sampled) heap
profiling in a production setting.

Currently it allows for profiling similar to the TCMalloc library,
e.g.:

$ HEAPSTER_PROFILE=/tmp/OUT java -agentlib:heapster Test
$ pprof /tmp/OUT
Welcome to pprof! For help, type 'help'.
(pprof) top
Total: 2001520 samples
2000024 99.9% 99.9% 2000048 99.9% LTest;main
1056 0.1% 100.0% 1056 0.1% Ljava/lang/Object;
296 0.0% 100.0% 296 0.0% Ljava/lang/String;toCharArray
104 0.0% 100.0% 136 0.0% Ljava/lang/Shutdown;

By default, Heapster samples every 512 kB, this can be changed with
the environment variable `HEAPSTER_SAMPLE_PERIOD` (in bytes).

This is still work in progress.

# Installation (Example)

$ make
$ cp libheapster.dylib /usr/local/lib/

# Twitter Server Integration

If you use [Twitter Server](https://github.com/twitter/twitter-server), and run your
program with heapster, you can generate runtime heap profiles like so:

$ curl 'localhost:9990/admin/pprof/heap?pause=10&sample_period=1024' > /tmp/prof

This will collect heap growth for 10 seconds, with a sampling period
of 1kB.