Benchmark tooling and data collection - powered by Phoronix Test Suite.
Find a file
Robert Partridge 0f9a532e06 Expand cpu-type-comparison test suite
Add gcrypt, tjbench, x265 (1080p + 4K), compress-7zip, and x264 4K to
better highlight CPU type differences between host and x86-64-v2-AES.
Proxmox changed its default CPU type from kvm64 to x86-64-v2-AES, making
the comparison more relevant but requiring more targeted tests to surface
meaningful differences.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-14 00:25:30 -05:00
schema Use system-agnostic language in docs 2026-03-30 23:06:19 -05:00
test-configs Expand cpu-type-comparison test suite 2026-04-14 00:25:30 -05:00
benchmarks.json Fix empty test_id for build-linux-kernel results 2026-03-29 14:07:22 -05:00
LICENSE Initial commit 2026-03-28 01:24:29 +00:00
README.md Use system-agnostic language in docs 2026-03-30 23:06:19 -05:00
run-pts.sh Clear stale PTS lock file before each run 2026-04-13 17:21:54 -05:00
setup-pts.sh Reboot at end of setup to ensure clean state before benchmarking 2026-03-29 18:55:26 -05:00

Test Addressed PTS Tooling

Scripts for running standardized benchmarks for Tech Addressed articles. Uses the Phoronix Test Suite.

Files

  • setup-pts.sh — Installs prerequisites, clones PTS, and installs the tests defined in a test config file
  • run-pts.sh — Runs a benchmark test session and writes results to JSON
  • benchmarks.json — Master registry of all benchmark tests, versions, and result definitions used by Tech Addressed
  • test-configs/ — Test configuration files (one per testing scenario)
  • schema/*.schema.json — JSON schema files for validating data files

Usage

1. Setup

Run once on a new system before benchmarking:

./setup-pts.sh <test-config>

Test config files are located in test-configs/. Example:

./setup-pts.sh standard-tests.json

This will update the system, install dependencies, clone PTS, and install all tests defined in the config.

2. Run benchmark tests

./run-pts.sh <test-config> <device-slug> <config-name> <temp-device-num> [session-id]
Argument Description
test-config Test config filename (e.g. standard-tests.json)
device-slug Short identifier for the device (e.g. rock-5b)
config-name Testing configuration name (e.g. stock) — determines the result filename
temp-device-num Position of the CPU/SoC temperature block in sensors output (1-based)
session-id (optional) Integer session ID. Auto-incremented if omitted.

Example:

./run-pts.sh standard-tests.json inovato-quadra stock 2

Results are written to ~/benchmarks/<device-slug>/<config-name>.json.

Finding the correct temp-device-num: Run sensors on the device and count the adapter blocks from the top. Pass the number of the block that represents the CPU/SoC package temperature.

Key Concepts

Session ID — All results from a single benchmark session share the same integer session_id. This allows results to be grouped. A value of 0 indicates a standalone individual test run. The session ID is auto-incremented from the last run if not specified.

Test Versions — The version field in benchmarks.json is the approved PTS version for each test. All systems should be benchmarked using the same version to ensure comparable results. When a version is updated, the old entry is retired and a new one is added.

Retired Tests — Tests are retired rather than deleted. Retired tests are excluded from new runs but their historical results remain valid.