Skip to main content

Helper to execute perf-beaker-tasks locally or in VM

Project description

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

Github Actions CI Documentation Status LGTM alerts LGTM Python code quality Maintainability Test Coverage

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

runperf-1.2.tar.gz (1.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

runperf-1.2-py3-none-any.whl (898.7 kB view details)

Uploaded Python 3

File details

Details for the file runperf-1.2.tar.gz.

File metadata

  • Download URL: runperf-1.2.tar.gz
  • Upload date:
  • Size: 1.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for runperf-1.2.tar.gz
Algorithm Hash digest
SHA256 a83d5946d2ddacbe4e042df85f81b1ee94bf60597b1d208c519295b1241e7149
MD5 6413c992bbc9a9644c144688aa3f6fa8
BLAKE2b-256 9cd52edc6b7ae49752d5d1945aba50b47bfe188eac3ce70c03146f82156caf52

See more details on using hashes here.

File details

Details for the file runperf-1.2-py3-none-any.whl.

File metadata

  • Download URL: runperf-1.2-py3-none-any.whl
  • Upload date:
  • Size: 898.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for runperf-1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 101b9146fb98915a618b54d12b0ba017c9ef3ae847f856ac082146af10201be4
MD5 e11675d5c6a41dc430b5c1669a83cfe6
BLAKE2b-256 a43e3024cb471422e9b5a9e4f9a80661744b0e27baf3ae750df975aa3478b4e8

See more details on using hashes here.

Supported by

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