Skip to main content

Benchmark resources usage

Project description

Monitor Process Resources Usage
===============================

Bench aims to be a handy tool with these functions:

- Monitor CPU time (user time, sys time, real time)
- Monitor memory usage (vms usage, rss usage)
- Output to TSV(tab-delimited files)
- Output benchmarking metrics
- Visualize benchmarking over time

Examples
========

- Example 1: simple command

.. raw:: html

<!-- -->

::

> monitor.py sleep 2
pid ppid cwd cmd utime stime rtime maxRss maxVms avgRss avgVms
99627 99626 /home/zhanxw/mycode/bench sleep 2 0.0 0.0 1.8569419384 835584 6066176 835584 6066176

- Example 2: complex shell commands with samping interval equaing 0.5
second

.. raw:: html

<!-- -->

::

> monitor.py sh -c 'sleep 2 & sleep 4 & seq 1000000 >/dev/null & wait'
pid ppid cwd cmd utime stime rtime maxRss maxVms avgRss avgVms
100673 100672 /home/zhanxw/mycode/bench sh -c sleep 2 & sleep 4 & seq 1000000 >/dev/null & wait 0.0 0.0 3.6947889328 897024 4558848 897024 4558848
100674 100673 /home/zhanxw/mycode/bench sleep 2 0.0 0.0 1.68072605133 684032 6066176 684032 6066176
100675 100673 /home/zhanxw/mycode/bench sleep 4 0.0 0.0 3.86425089836 700416 6066176 700416 6066176

- Example 3: generate benmarking metrics to external file

The small program, burnCpu, will keep CPU running for several seconds.
Its source code is under src/.

::

> monitor.py -t -o burnCpu ./burnCpu
[1440476547.641628, 104060, 104059, '/home/zhanxw/mycode/bench/src', ['./burnCpu'], pcputimes(user=0.0, system=0.0), pmem(rss=1425408, vms=12984320)]
[1440476547.79734, 104060, 104059, '/home/zhanxw/mycode/bench/src', ['./burnCpu'], pcputimes(user=0.15, system=0.0), pmem(rss=1425408, vms=12984320)]
[1440476547.960703, 104060, 104059, '/home/zhanxw/mycode/bench/src', ['./burnCpu'], pcputimes(user=0.32, system=0.0), pmem(rss=1425408, vms=12984320)]
[1440476548.127665, 104060, 104059, '/home/zhanxw/mycode/bench/src', ['./burnCpu'], pcputimes(user=0.48, system=0.0), pmem(rss=1425408, vms=12984320)]
...

Additional result are stored in *burnCpu.csv*, *burnCpu.trace.csv* in
the Comma-separated format (CSV).

*burnCpu.csv* content

::

pid,ppid,cwd,cmd,utime,stime,rtime,maxRss,maxVms,avgRss,avgVms
104060,104059,/home/zhanxw/mycode/bench/src,./burnCpu,5.88,0.0,5.87858390808,1425408,12984320,1425408,12984320

*burnCpu.trace.csv* content

::

pid,ppid,cwd,cmd,utime,stime,rtime,rss,vms
104060,104059,/home/zhanxw/mycode/bench/src,./burnCpu,0.0,0.0,0.0,1425408,12984320
104060,104059,/home/zhanxw/mycode/bench/src,./burnCpu,0.15,0.0,0.155711889267,1425408,12984320
104060,104059,/home/zhanxw/mycode/bench/src,./burnCpu,0.32,0.0,0.319074869156,1425408,12984320
104060,104059,/home/zhanxw/mycode/bench/src,./burnCpu,0.48,0.0,0.486037015915,1425408,12984320
104060,104059,/home/zhanxw/mycode/bench/src,./burnCpu,0.65,0.0,0.653388023376,1425408,12984320
...

By using the trace output file, *burnCpu.trace.csv*, you can draw
benchmarking graphs, such as:

|image| NOTE ====

Shell (/bin/sh) can be used to execute commands. You can use "sh -c
'command arg1 arg2 ... '".

bench requires `psutil <https://pypi.python.org/pypi/psutil>`__ to
collect basic benchmarking metrics. We used psutil version 3.1.1 in
development.

Contact
=======

Xiaowei Zhan

.. |image| image:: http://zhanxw.com/bench/burnCpu.mon.png

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bench-2.4.tar.gz (4.2 kB view details)

Uploaded Source

File details

Details for the file bench-2.4.tar.gz.

File metadata

  • Download URL: bench-2.4.tar.gz
  • Upload date:
  • Size: 4.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for bench-2.4.tar.gz
Algorithm Hash digest
SHA256 bf2d69a858d38be0517ddc44ba05fa86f780010b52c01d4365ec48d483068193
MD5 e25dcd19998fa678161f672c39f93edf
BLAKE2b-256 5a3cf5e0dbc7aef2de02d7cf0c4abe3aa6ad54e266b2fd0be646a530b6b51c84

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page