Skip to main content

codecov Actions Actions

redisbench-admin

Redis benchmark run helper can help you with the following tasks:

  • Setup abd teardown of benchmarking infrastructure specified on redis-performance/testing-infrastructure
  • Setup and teardown of an Redis and Redis Modules DBs for benchmarking
  • Management of benchmark data and specifications across different setups
  • Running benchmarks and recording results
  • Exporting performance results in several formats (CSV, RedisTimeSeries, JSON)
  • Finding on-cpu, off-cpu, io, and threading performance problems by attaching profiling tools/probers ( perf (a.k.a. perf_events), bpf tooling, vtune )
  • [SOON] Finding performance problems by attaching telemetry probes

Current supported benchmark tools:

Remote SSH connections retry transient connection failures (e.g. a refused connection or a brief host outage) up to SSH_CONNECT_MAX_RETRIES times (default 5), waiting 1, 2, 4, ... seconds between attempts. Each attempt is bounded by SSH_CONNECT_TIMEOUT seconds (default 30), so an unreachable host fails after about 3.5 minutes with the defaults; refused connections fail immediately and only pay the backoff (31 seconds). Only opening the connection is retried, before any remote command runs, so setup steps and benchmark measurements are never replayed. Authentication errors are not retried. Fetching result files retries transient SSH/SFTP errors the same way, up to SSH_FETCH_MAX_RETRIES times (default 3).

Installation

Installation is done using pip, the package installer for Python, in the following manner:

python3 -m pip install redisbench-admin

Profiler daemon

You can use the profiler daemon by itself in the following manner. On the target machine do as follow:

pip3 install --upgrade pip
pip3 install redisbench-admin --ignore-installed PyYAML

# install perf
apt install linux-tools-common linux-tools-generic linux-tools-`uname -r` -y

# ensure perf is working
perf --version

# install awscli
snap install aws-cli --classic


# configure aws
aws configure

# start the perf-daemon
perf-daemon start
WARNING:root:Unable to detected github_actor. caught the following error: No section: 'user'
Writting log to /tmp/perf-daemon.log
Starting perf-daemon. PID file /tmp/perfdaemon.pid. Daemon workdir: /root/RedisGraph

# check daemon is working appropriatelly
curl localhost:5000/ping

# start a profile
curl -X POST localhost:5000/profiler/perf/start/<pid to profile>

# stop a profile
curl -X POST -d '{"aws_access_key_id":$AWS_ACCESS_KEY_ID,"aws_secret_access_key":$AWS_SECRET_ACCESS_KEY}' localhost:5000/profiler/perf/stop/<pid to profile>

Development

  1. Install pypoetry to manage your dependencies and trigger tooling.
pip install poetry
  1. Installing dependencies from lock file
poetry install

Running formaters

poetry run black .

Running linters

poetry run flake8

Running tests

A test suite is provided, and can be run with:

$ tox

To run a specific test:

$ tox -- tests/test_defaults_purpose_built_env.py

To run a specific test and persist the docker container used for timeseries:

tox  --docker-dont-stop=rts_datasink  -- -vv --log-cli-level=INFO  tests/test_defaults_purpose_built_env.py 

To run a specific test with verbose logging:

# tox -- -vv --log-cli-level=INFO tests/test_run.py

License

redisbench-admin is distributed under the BSD3 license - see LICENSE

Metadata

Release files for redisbench-admin 0.12.41

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for redisbench-admin 0.12.41
File Size Uploaded Provenance
redisbench_admin-0.12.41.tar.gz 196.6 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for redisbench-admin 0.12.41
File Interpreter ABI Platform
redisbench_admin-0.12.41-py3-none-any.whl Python 3 none any Details

Total release size: 437.3 kB

Release files / redisbench_admin-0.12.41.tar.gz

Download URL redisbench_admin-0.12.41.tar.gz
Size 196.6 kB
Tags Source
SHA-256 checksum
How to use checksums
dfa4edf927e0552d34680ee61fb6face3b3bd448c4ea9447c74cd54a12427d8e
BLAKE2b-256 checksum
How to use checksums
6d175cef2f284d0af2a3b29fdc6da00025a25639d26f99c0c369c69595259bd7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.5.1 CPython/3.10.22 Linux/6.17.0-1022-azure

Release files / redisbench_admin-0.12.41-py3-none-any.whl

Download URL redisbench_admin-0.12.41-py3-none-any.whl
Size 240.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d4d6262b1a62d42e091dbd614fcf4b25c3aab853a80cacef76bd118a935f6a63
BLAKE2b-256 checksum
How to use checksums
ab494b63b272411b8298ab8a5cad43384eb6177e52e6bc60fa63809b3cbfb8de
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.5.1 CPython/3.10.22 Linux/6.17.0-1022-azure

Security for redisbench-admin 0.12.41

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.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.12.41 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page