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 clone-and-deploy section in the documentation.
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
Metadata
Release files for runperf 1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| runperf-1.2.tar.gz | 1.5 MB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| runperf-1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 2.4 MB
Release files / runperf-1.2.tar.gz
| Download URL | runperf-1.2.tar.gz |
|---|---|
| Size | 1.5 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a83d5946d2ddacbe4e042df85f81b1ee94bf60597b1d208c519295b1241e7149
|
|
BLAKE2b-256 checksum How to use checksums |
9cd52edc6b7ae49752d5d1945aba50b47bfe188eac3ce70c03146f82156caf52
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.12
|
Release files / runperf-1.2-py3-none-any.whl
| Download URL | runperf-1.2-py3-none-any.whl |
|---|---|
| Size | 898.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
101b9146fb98915a618b54d12b0ba017c9ef3ae847f856ac082146af10201be4
|
|
BLAKE2b-256 checksum How to use checksums |
a43e3024cb471422e9b5a9e4f9a80661744b0e27baf3ae750df975aa3478b4e8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.12
|
Security for runperf 1.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.