MemstatCsv
memstat_csv starts a thread which logs to a CSV file the memory usage for
debugging or visualization. It is based on the
memstat gem and uses the information
provided by /proc/PID/status
:
- peak: Peak memory size
- size: Virtual memory size
- lck: Lock memory size
- hwm: "High water mark" (peak resident set size)
- rss: Resident set size
- data, stk, exe: Size of the data, stack and text segments
- lib: Shared library code size
- pte: Page table entries size
Installation
Add this line to your application's Gemfile:
gem 'memstat_csv'
And then execute:
$ bundle
Or install it yourself as:
$ gem install memstat_csv
Usage
# Start collecting data
mem_logger=MemstatCSV::Logger.new
# ...
# Stop collecting data
Thread.kill(mem_logger)
By default, the data is collected approximately every second and data is written
in a CSV file named 'memlog-PID.csv' in the system temp directory (e.g.
/tmp/
). If you need to override these default settings, use the sleep_time
and basedir
options:
mem_logger=MemstatCSV::Logger.new(sleep_time: 0.5, basedir: '.')
# ...
Thread.kill(mem_logger)
Contributing
- Fork it ( https://github.com/[my-github-username]/memstat_csv/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request