3

Show HN: DBChaos – A Database stress testing tool

 4 months ago
source link: https://github.com/adaptive-scale/dbchaos
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

DBChaos

Stress-test your database with pre-defined queries. Validate slow and expensive queries that breaks your database.

Installation

go install github.com/adaptive-scale/[email protected]

Run your first test

Create a file name config.yaml with the following content:

dbType: postgres
connection: "host=localhost port=5432 user=postgres password=postgres dbname=postgres sslmode=disable"
query: |
  SELECT pg_database.datname as "Database", pg_size_pretty(pg_database_size(pg_database.datname)) as "Size"
  FROM pg_database;
parallelRuns: 100
runFor: 30m

To run the above config file:

dbchaos runTest config.yaml

Run bunch of queries in parallel

Create a file called scenario.yaml with the following content:

dbType: mysql
connection: "root:root@tcp(host:port)/db"
scenarios:
  - query: select * from information_schema.statistics
    parallelRuns: 10000
    runFor: 15m
  - query: |
      SELECT table_schema "Database", ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) "Size (MB)"
      FROM information_schema.tables
      GROUP BY table_schema;
    parallelRuns: 10000
    runFor: 15m

To run the above scenario file:

dbchaos runScenario scenario.yaml

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK