- Home
- Database Testing Tools
- Percona pstress
Percona pstress
What it is
Percona pstress is a free, open-source tool for concurrent database and crash recovery testing. It generates randomized transactions from user-provided options to create load on a single server or a cluster. Its stated use cases include checking database features, regressions, and crash recovery for MySQL, Percona Server, and Percona XtraDB Cluster. A multithreaded C++ workload generator works with a Bash driver for concurrency and recovery tests. The driver can stop and restart a server between steps, vary server variables, and continue using the previous step’s data directory. Command-line options control workload details such as thread count, tables, records, transaction size, and SQL operation probabilities. By default, each trial directory stores the data directory, server error logs, thread logs, mysqld binaries, and test configuration. It runs self-hosted on Linux and is identified as GPL-2.0 licensed. Building requires CMake 2.6 or later, a C++ compiler 4.7 or later, and development files for the target MySQL version or fork. A key limitation is that pstress does not verify whether successful queries return correct data, and its data checks are limited.
For and against
For
- Free and open-source under GPL-2.0
- Generates concurrent workloads on a server or cluster
- Supports MySQL, Percona Server, and Percona XtraDB Cluster
- Can continue recovery tests from a prior data directory
- Saves logs and configuration in trial directories
Against
- Does not verify correctness of successful query results
- Data checks are limited
- Build requires specified compiler, CMake, and development files
The verdict
pstress offers configurable concurrent workload and crash recovery testing for supported database systems. Its limited data checking means it does not establish whether successful queries returned correct results.
Who it suits
It suits database users conducting regression, feature, or crash recovery tests on supported MySQL versions and forks. It is designed for self-hosted Linux use.
Plans and prices
pstress
Open-source database testing tool; source code and build instructions on GitHub
Read 7 Oct 2026 · github.com
On the record
- Architecture
- pstress has a multithreaded C++ workload generator and a Bash driver script for concurrency and crash recovery testing.github.com · read 7 Oct 2026
- 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.github.com · read 7 Oct 2026
- 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.github.com · read 7 Oct 2026
- Diagnostics
- By default, pstress saves each trial directory with the data directory, server error logs, thread logs, mysqld binaries, and the test configuration.github.com · read 7 Oct 2026
- Intended users
- Percona's article describes regression, feature, and crash recovery testing as pstress use cases.percona.com · read 7 Oct 2026
- License
- The repository identifies its license as GPL-2.0.github.com · read 7 Oct 2026
- Limit
- Percona's article says pstress does not verify that successful queries return correct data, and its data checks are limited.percona.com · read 7 Oct 2026
- Purpose
- pstress is a probability-based open-source tool for concurrent database testing and crash recovery testing.github.com · read 7 Oct 2026
- Server support
- The README gives build options for MySQL, Percona Server, and Percona XtraDB Cluster.github.com · read 7 Oct 2026
- Testing uses
- The README says users can use it to test database features, regressions, and crash recovery.github.com · read 7 Oct 2026
- Workload controls
- Command-line options control workload details such as thread count, tables, records, transaction size, and SQL operation probabilities.github.com · read 7 Oct 2026
- Workload generation
- It generates random transactions based on user-provided options and can create concurrent load on a cluster or a single server.github.com · read 7 Oct 2026