Freedom251 › Database Testing Tools
Percona pstress

What Percona pstress is
Percona pstress is a free, open-source tool for generating concurrent database workloads and testing crash recovery. It creates randomized transactions from user-provided options and can apply concurrent load to a single server or a cluster. Its documented uses include checking database features, regressions, and crash recovery. The README gives build options for MySQL, Percona Server, and Percona XtraDB Cluster.
The tool combines a multithreaded C++ workload generator with a Bash driver for concurrency and crash recovery testing. For recovery tests, the driver can stop and restart the server between steps, vary server variables, and continue the workload using the data directory from the previous step. Command-line options control details such as thread count, tables, records, transaction size, and the probabilities of SQL operations. By default, each trial directory saves the data directory, server error logs, thread logs, mysqld binaries, and test configuration.
pstress runs on Linux in a self-hosted setup. Building it requires CMake 2.6 or later, a C++ compiler 4.7 or later, and development files for the target MySQL version or fork. The repository identifies its license as GPL-2.0. Its data checks are limited: it does not verify that successful queries return correct data.
Who it suits
pstress suits database developers and testers working on feature, regression, or crash recovery tests for MySQL, Percona Server, or Percona XtraDB Cluster. It is designed for users who can build and run a self-hosted Linux tool and configure workloads through command-line options.
What it does well
- Generates random transactions from user-provided options.
- Creates concurrent load on a server or cluster.
- Supports crash recovery steps that reuse the previous data directory.
- Command-line options control workload size and SQL operation probabilities.
- Saves trial data, logs, binaries, and test configuration by default.
- GPL-2.0 licensed and free.
What to know first
- Does not verify that successful queries return correct data.
- Data checks are limited.
- Building requires CMake 2.6 or later and a C++ compiler 4.7 or later.
- Requires development files for the target MySQL version or fork.
Limits
pstress does not verify that successful queries return correct data, and its data checks are limited.
Plans
| Plan | Billed and limits | Price |
|---|---|---|
| pstress | Open-source database testing tool; source code and build instructions on GitHub | Free |
As github.com lists them, read 7 Oct 2026. The maker's own page has the final word.
Getting started
- Visit https://github.com/Percona-QA/pstress.
- Review the source code and build instructions on GitHub.
- Use a Linux environment for the self-hosted setup.
- Install CMake 2.6 or later and a C++ compiler 4.7 or later.
- Provide development files for the target MySQL version or fork.
- Build for MySQL, Percona Server, or Percona XtraDB Cluster.
Verdict
Choose pstress for free, self-hosted concurrent workload and crash recovery testing across the listed MySQL server options. Look elsewhere if your testing requires pstress itself to verify that successful queries returned correct data; its data checks are limited.
Questions
How much does pstress cost?
The pstress plan is free.
Is pstress open source?
Yes. The repository identifies its license as GPL-2.0, and provides source code and build instructions on GitHub.
Which databases does it support?
The README gives build options for MySQL, Percona Server, and Percona XtraDB Cluster.
Which platforms does it support?
It runs on Linux in a self-hosted setup.
What does pstress test?
Its documented uses include database features, regressions, and crash recovery testing.
Does it check query results for correctness?
It does not verify that successful queries return correct data, and its data checks are limited.
Facts from Percona pstress's own pages
- Architecture
- pstress has a multithreaded C++ workload generator and a Bash driver script for concurrency and crash recovery testing. · github.com, 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, 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, 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, 7 Oct 2026
- Founded
- 2006 · github.com, 28 Sept 2026
- Intended users
- Percona's article describes regression, feature, and crash recovery testing as pstress use cases. · percona.com, 7 Oct 2026
- License
- The repository identifies its license as GPL-2.0. · github.com, 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, 7 Oct 2026
- Purpose
- pstress is a probability-based open-source tool for concurrent database testing and crash recovery testing. · github.com, 7 Oct 2026
- Server support
- The README gives build options for MySQL, Percona Server, and Percona XtraDB Cluster. · github.com, 7 Oct 2026
- Testing uses
- The README says users can use it to test database features, regressions, and crash recovery. · github.com, 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, 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, 7 Oct 2026
Where Percona pstress stands on Freedom251
- Database Testing Tools#13 of 28