All Projects → lesovsky → Noisia

lesovsky / Noisia

Licence: bsd-3-clause
Harmful workload generator for PostgreSQL

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Noisia

Sqlbench
sqlbench measures and compares the execution time of one or more SQL queries.
Stars: ✭ 319 (-46.02%)
Mutual labels:  postgresql, benchmarking
Tsung
Tsung is a high-performance benchmark framework for various protocols including HTTP, XMPP, LDAP, etc.
Stars: ✭ 2,185 (+269.71%)
Mutual labels:  postgresql, benchmarking
Feedhq
FeedHQ is a web-based feed reader
Stars: ✭ 525 (-11.17%)
Mutual labels:  postgresql
Dotfiles
💾 Ian's dotfiles, utils, and Zsh/Vim/tmux configs
Stars: ✭ 554 (-6.26%)
Mutual labels:  postgresql
Pgaudit
PostgreSQL Audit Extension
Stars: ✭ 532 (-9.98%)
Mutual labels:  postgresql
Pg Boss
Queueing jobs in Node.js using PostgreSQL like a boss
Stars: ✭ 525 (-11.17%)
Mutual labels:  postgresql
Martin
Blazing fast and lightweight PostGIS vector tiles server
Stars: ✭ 540 (-8.63%)
Mutual labels:  postgresql
Qb
The database toolkit for go
Stars: ✭ 524 (-11.34%)
Mutual labels:  postgresql
Cleverhans
An adversarial example library for constructing attacks, building defenses, and benchmarking both
Stars: ✭ 5,356 (+806.26%)
Mutual labels:  benchmarking
Postgres dba
The missing set of useful tools for Postgres DBAs and all engineers
Stars: ✭ 532 (-9.98%)
Mutual labels:  postgresql
Typeorm
ORM for TypeScript and JavaScript (ES7, ES6, ES5). Supports MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, SAP Hana, WebSQL databases. Works in NodeJS, Browser, Ionic, Cordova and Electron platforms.
Stars: ✭ 26,559 (+4393.91%)
Mutual labels:  postgresql
Performance Analysis Js
Map/Reduce/Filter/Find Vs For loop Vs For each Vs Lodash vs Ramda
Stars: ✭ 532 (-9.98%)
Mutual labels:  benchmarking
Zblogphp
Z-BlogPHP博客程序
Stars: ✭ 527 (-10.83%)
Mutual labels:  postgresql
Go Sqlbuilder
A flexible and powerful SQL string builder library plus a zero-config ORM.
Stars: ✭ 539 (-8.8%)
Mutual labels:  postgresql
Labnotebook
LabNotebook is a tool that allows you to flexibly monitor, record, save, and query all your machine learning experiments.
Stars: ✭ 526 (-11%)
Mutual labels:  postgresql
Gin Boilerplate
The fastest way to deploy a restful api's with Gin Framework with a structured project that defaults to PostgreSQL database and JWT authentication middleware stored in Redis
Stars: ✭ 559 (-5.41%)
Mutual labels:  postgresql
Asyncpg
A fast PostgreSQL Database Client Library for Python/asyncio.
Stars: ✭ 5,216 (+782.57%)
Mutual labels:  postgresql
Zenodo
Research. Shared.
Stars: ✭ 528 (-10.66%)
Mutual labels:  postgresql
Wecron
✔️ 微信上的定时提醒 - Cron on WeChat
Stars: ✭ 537 (-9.14%)
Mutual labels:  postgresql
Full Stack Fastapi Postgresql
Full stack, modern web application generator. Using FastAPI, PostgreSQL as database, Docker, automatic HTTPS and more.
Stars: ✭ 7,635 (+1191.88%)
Mutual labels:  postgresql

Noisia

Harmful workload generator for PostgreSQL.


Supported workloads:

  • idle transactions - transactions that do nothing during its lifetime.
  • rollbacks - transactions performed some work but rolled back in the end.
  • waiting transactions - transaction locked by other transactions and thus waiting.
  • deadlocks - simultaneous transactions where each hold locks that the other transactions wants.
  • temporary files - queries that produce on-disk temporary files due to lack of work_mem.
  • terminate backends - terminate random backends (or queries) using pg_terminate_backend(), pg_cancel_backend().
  • failed connections - exhaust connections pool (other clients can't connect to Postgres)
  • ...see built-in help for more runtime options.

Disclaimer

ATTENTION: USE ONLY FOR TESTING PURPOSES, DO NOT EXECUTE NOISIA AGAINST PRODUCTION, RECKLESS USAGE WILL CAUSE PROBLEMS.

DISCLAIMER: THIS SOFTWARE PROVIDED AS-IS WITH NO CARES AND GUARANTEES RELATED TO YOUR DATABASES. USE AT YOUR OWN RISK.

Installation and usage

Check out releases page.

Using Docker

docker pull lesovsky/noisia:latest
docker run --rm -ti lesovsky/noisia:latest noisia --help

Using in your own code

You can import noisia and use necessary workloads in your code. Always use contexts to avoid infinite run. See tiny example below:

import (
  "context"
  "fmt"
  "github.com/lesovsky/noisia/waitxacts"
  "time"
)

func main() {
  config := &waitxacts.Config{
    PostgresConninfo:    "host=127.0.0.1",
    Jobs:                 2,
  }

  ctx, cancel := context.WithTimeout(context.Background(), 4*time.Second)
  defer cancel()

  w := waitxacts.NewWorkload(config)
  if err := w.Run(ctx); err != nil {
    fmt.Println(err)
  }
}

TODO/Ideas:

If you have any ideas, feel free to open a discussion.

[ ] sequential scans

License

BSD-3. See LICENSE for more details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].