1.6 KiB
pgidler
Create idle postgres connections for testing
Introduction
This program start a number of idle (or idle in transaction) sessions on a postgres database for testing purposes. It uses go routines (like threads) to execute independent clients. Each client executes a number of harmless SELECT's and then stops doing anything. The clients then hang either forever or until a specified timeout is reached.
This is an implementation of a tool described at AWS Blog: Performance impact of idle PostgreSQL connections.
Building
Run make to compile. You'll need Golang. The repo contains a
pre-compiled binary for linux amd.
Usage
pgidler offers two idle modes:
- idle: create normal idle sessions
- idle in transaction: create sessions hanging in a transaction
The following commandline options are available:
Usage of ./pgidler:
-c, --client int Number of concurrent users (default 500)
-d, --database string Database (default "postgres")
-i, --idletransaction Wether to stay in idle in transaction state
-p, --password string Password of the database user
-P, --port int TCP Port (default 5432)
-s, --server string Server (default "localhost")
-t, --timeout int Wether to stop the clients after N seconds
-u, --user string Database user (default "postgres")
Report bugs
Please open an issue. Thanks!
License
This work is licensed under the terms of the General Public Licens version 3.
Author
Copyleft (c) 2024 Thomas von Dein