Percona pstress
github.com
What it is
Percona pstress is a free, open-source Linux tool for concurrent database and crash-recovery testing. It creates randomized transactions from command-line options and runs concurrent workloads against a single server or cluster. Documented uses include checking database features, regressions, and recovery behavior for MySQL, Percona Server, and Percona XtraDB Cluster. A multithreaded C++ generator works with a Bash driver that coordinates concurrency and recovery steps. The driver can stop and restart a server between steps, change server variables, and continue with the preceding step’s data directory. Options control thread count, tables, records, transaction size, and SQL-operation probabilities. Trial directories normally retain the data directory, error logs, thread logs, mysqld binaries, and configuration. Building requires CMake 2.6 or later, a C++ compiler 4.7 or later, and development files for the target database version or fork. The repository identifies GPL-2.0 licensing. pstress runs self-hosted and does not verify that successful queries returned correct data.
Spec sheet
- Purpose
- pstress is a probability-based open-source tool for concurrent database testing and crash recovery testing.Read 7 Oct 2026 · github.com
- Intended users
- Percona's article describes regression, feature, and crash recovery testing as pstress use cases.Read 7 Oct 2026 · percona.com
- License
- The repository identifies its license as GPL-2.0.Read 7 Oct 2026 · github.com
- Founded
- 2006Read 28 Sep 2026 · github.com
- Architecture
- pstress has a multithreaded C++ workload generator and a Bash driver script for concurrency and crash recovery testing.Read 7 Oct 2026 · github.com
- Build requirements
- The README lists CMake 2.6 or later, a C++ compiler 4.7 or later, and development files for the target MySQL version or fork as build requirements.Read 7 Oct 2026 · github.com
- Crash recovery
- The driver can stop and restart the server between test steps, vary server variables, and continue the workload using the previous step's data directory.Read 7 Oct 2026 · github.com
- Diagnostics
- By default, pstress saves each trial directory with the data directory, server error logs, thread logs, mysqld binaries, and the test configuration.Read 7 Oct 2026 · github.com
- Limit
- Percona's article says pstress does not verify that successful queries return correct data, and its data checks are limited.Read 7 Oct 2026 · percona.com
- Server support
- The README gives build options for MySQL, Percona Server, and Percona XtraDB Cluster.Read 7 Oct 2026 · github.com
- Testing uses
- The README says users can use it to test database features, regressions, and crash recovery.Read 7 Oct 2026 · github.com
- Workload controls
- Command-line options control workload details such as thread count, tables, records, transaction size, and SQL operation probabilities.Read 7 Oct 2026 · github.com
- Workload generation
- It generates random transactions based on user-provided options and can create concurrent load on a cluster or a single server.Read 7 Oct 2026 · github.com
Plans and prices
Strong points and limits
Strong points
- Free and open-source under GPL-2.0
- Generates concurrent workloads for servers or clusters
- Supports MySQL, Percona Server, and XtraDB Cluster
- Can stop, restart, and resume recovery workloads
- Saves logs and configuration per trial
Limits
- Does not verify successful query results
- Data checks are limited
- Requires local CMake, compiler, and database development files
Who it suits
pstress suits database engineers running self-hosted regression, feature, schema-migration, or crash-recovery tests on supported MySQL-family systems. It is intended for Linux environments where users can build and operate the tool.
Verdict
pstress provides configurable concurrent and crash-recovery workloads for supported MySQL-family databases. Its saved diagnostics and recovery controls are useful for self-hosted testing, but result validation remains limited.
Where Specifiction places it
- Database Testing Tools#17 of 287.5