Coder Social home page Coder Social logo

hayamiz / perfmonger Goto Github PK

View Code? Open in Web Editor NEW
39.0 10.0 6.0 1.87 MB

License: GNU General Public License v3.0

Emacs Lisp 0.01% Ruby 13.79% Makefile 0.55% Go 16.26% CSS 0.04% HTML 1.55% JavaScript 66.21% Shell 1.35% Dockerfile 0.23%
performance-analysis cpu monitor-cpu iops storage performance-metrics

perfmonger's People

Contributors

hayamiz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

perfmonger's Issues

Check exit status of background perfmonger-recorder

perfmonger record --kill does not check the background perfmonger-recorder process has exited or not, and fail if the process does not exit correctly.

Also, perfmonger record --kill should fail if there is no background recorder process.

[record] Timeout option

If timeout option is specified, perfmonger-record exits after the specified time has passed.

$ perfmonger record --interval 0.1 --timeout 10 -d sda
{"time": ..., "ioinfo": {... } ... }
(... 10 seconds ...)
== Summary ==
...

[server] Display hostname

Display hostname on HTML5 realtime monitor.

Use a hostname given by command line argument, or try to obtain it automatically.

Gzipped data file support

  • record subcommand: gzipped output stream (maybe gzipped file as default for future version?)
  • play subcommand: handle gzipped and plain input stream
    • file extension based approach (*.pgr is plain, *pgr.gz is gzipped)
    • transparent file handling approach (check magic number first, then switch plain/gzip read)

Streaming processing in summary subcommand

Currently summary subcommand reads all records into memory, then do computation. This does not work if records takes memory space larger than physical memory.
Calculate summary in streaming processing fashion.

[record] Trigger option

perfmonger-record starts recording just after a trigger condition is fired.

trigger can be:

  • the first launch of the specified program
  • the first fork from the specified process
  • specified time

or something elese.

[stat] Calculate avg. IOPS by accumulating IOPS*ฮ”t

  • x[i] ... i-th sample value of IOPS
  • t[i] ... beginning time of i-th sample
  • N ... # of samples

Currently avg. IOPS is calculated as a average value of sampled IOPS.

avg IOPS = (x[0] + x[1] + ... + x[N-1]) / N

But actually, avg. IOPS needs to be calculated by this way.

avg IOPS = (x[1] * (t[1] - t[0]) + x[2] * (t[2] - t[1]) + ...  + x[N-1] * (t[N-1] - t[N-2])) / (t[N-1] - t[0])

Resolve logical volume name

If /dev/mapper/VolGroup00-LogVol00 or /dev/VolGroup00/LogVol00 is passed to perfmonger record via -d option, convert it to corresponding device name dm-x.

This is done by following steps:

  1. Build device name dictionary by reading /proc/partitions
  2. Parse input and identify the path of logical volume
  3. stat(3) the volume and get major/minor number of the volume
  4. Look up the dictionary build in step 1. with major/minor number

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.