Helper to execute perf-beaker-tasks locally or in VM
Project description
============ Introduction
This project should help with executing the same tasks on pre-defined scenarios/profiles. In case the tasks provide pbench-like json results it also allows tools to analyze and compare the results with main focus on monitoring performance in time.
The main usecase of this tool is a performance regression CI.
Setup
Run-perf is available from pip
so one can install it by executing::
python3 -m pip install runperf
or to install directly the latest version from git::
python3 -m pip install git+https://github.com/distributed-system-analysis/run-perf.git
For development purposes please check-out the :any:clone-and-deploy
section.
Components
- run-perf => run perf test(s) and report results
- compare-perf => compare 2 or more runperf results together reporting human as well as machine readable output optionally supporting model to smooth the comparisons
- analyze-perf => calculate a model based on one or multiple results
Basic usage
Execute uperf
and fio
(with custom params) on machine foo.example.org
that will be provisioned via beaker
to Fedora-32. Execute the tests
under Localhost
(directly on the foo.example.org
machine) and
TunedLibvirt
(configures host, fetches guest image, configures it and
spawns guest VM) profiles and report results in ./result_$date
directory::
run-perf -vvv --hosts foo:foo.example.org --provisioner Beaker --distro Fedora-32 --default-password password --profiles Localhost TunedLibvirt -- uperf fio:'{"type":"read", "ramptime":"1", "runtime":"10", "samples":"1", "file-size": "100", "targets": "/fio"}'
Process result*
directories, compare the ranges and create a linear model
that normalizes the ranges to <-3, +3>
range::
analyze-perf -vvv -l model1.json -t 3 -- result*
Compare src
and dst
results using model1.json
linear model and report
the comparison in human readable form to the console, in XUNIT format in
result.xml
file and as a standalone html page in result.html
. For
some tasks the result*
results are also added as reference for better
visualization of the changes::
compare-perf -vvv --tolerance 5 --stddev-tolerance 10 -l model1.json --xunit result.xml --html result.html -- src result* dst
.. image:: https://github.com/distributed-system-analysis/run-perf/actions/workflows/ci.yml/badge.svg :target: https://github.com/distributed-system-analysis/run-perf/actions/workflows/ci.yml :alt: Github Actions CI
.. image:: https://readthedocs.org/projects/run-perf/badge/?version=latest :target: https://run-perf.readthedocs.io/en/latest/?badge=latest :alt: Documentation Status
.. image:: https://img.shields.io/lgtm/alerts/g/distributed-system-analysis/run-perf.svg?logo=lgtm&logoWidth=18 :target: https://lgtm.com/projects/g/distributed-system-analysis/run-perf/alerts/ :alt: LGTM alerts
.. image:: https://img.shields.io/lgtm/grade/python/g/distributed-system-analysis/run-perf.svg?logo=lgtm&logoWidth=18 :target: https://lgtm.com/projects/g/distributed-system-analysis/run-perf/context:python :alt: LGTM Python code quality
.. image:: https://api.codeclimate.com/v1/badges/5a2ca7137e0094c24c18/maintainability :target: https://codeclimate.com/github/distributed-system-analysis/run-perf/maintainability :alt: Maintainability
.. image:: https://api.codeclimate.com/v1/badges/5a2ca7137e0094c24c18/test_coverage :target: https://codeclimate.com/github/distributed-system-analysis/run-perf/test_coverage :alt: Test Coverage
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file runperf-1.1.tar.gz
.
File metadata
- Download URL: runperf-1.1.tar.gz
- Upload date:
- Size: 273.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 95dffb749abb000f2686e65619148115c77ec6edade896bbb86792a224af7f7f |
|
MD5 | b3cb4301648fe9bd698f9458287ea438 |
|
BLAKE2b-256 | ac0f327a8b9a18054a9acc68cffb34e0a713933f1c7139d4add78480c88976cb |
File details
Details for the file runperf-1.1-py3-none-any.whl
.
File metadata
- Download URL: runperf-1.1-py3-none-any.whl
- Upload date:
- Size: 282.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f5d0b5fafafbfaf93311bbe6e9e4a50428af4cb8ce04aa8c0abd8b5c103afcec |
|
MD5 | 0448650fa9bb900c9219ccb734ae0f1f |
|
BLAKE2b-256 | 80b24560c68822ee25fee6560559196fcdbee25be8273fd9e8754518fbd8e4aa |