timescaledb-tune
by
timescale

Description: A tool for tuning TimescaleDB for better performance by adjusting settings to match your system's CPU and memory resources.

View on GitHub ↗

Summary Information

Updated 1 hour ago
Added to GitGenius on April 8th, 2021
Created on November 20th, 2018
Open Issues & Pull Requests: 18 (+0)
Number of forks: 48
Total Stargazers: 501 (+0)
Total Subscribers: 26 (+0)

Issue Activity (beta)

Open issues: 17
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 1,557 days
Stale 30+ days: 17
Stale 90+ days: 17

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • bug (4)
  • enhancement (3)
  • question (2)
  • waiting-for-author (2)
  • packaging (1)
  • windows (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Repository Insights (GitGenius)

Median issue/PR response: 327.3 days
Mean response time: 797.4 days
90th percentile: 1889.6 days
Tracked items: 10

Most active contributors

Detailed Description

timescaledb-tune is a command-line tool written in Go that automatically configures TimescaleDB databases for optimal performance based on a system's hardware resources. The tool analyzes CPU count and available memory to generate tailored configuration recommendations, then applies those settings to the postgresql.conf file. It addresses a common operational challenge: determining appropriate database parameter values for different deployment environments without requiring deep expertise in database tuning.

The core functionality involves parsing an existing postgresql.conf file to verify TimescaleDB extension installation and then providing recommendations across multiple configuration domains including memory allocation, parallelism settings, write-ahead log (WAL) behavior, and background worker processes. Users interact with the tool through a series of prompts that guide them through accepting or rejecting each recommendation. The tool requires Go 1.18 or later for installation from source via go install, though it is also distributed as a binary package through package managers including Homebrew, yum, and apt under the name timescaledb-tools.

The tool offers substantial flexibility in how recommendations are generated and applied. The --profile flag allows users to select workload-specific tuning profiles, with "promscale" currently available as an alternative to the default TimescaleDB profile. Users can specify custom memory and CPU values rather than relying on auto-detection, set explicit background worker counts, allocate dedicated disk space for WAL, or target specific workload characteristics. For automation scenarios, the --yes flag accepts all recommendations without prompts, while --dry-run shows recommendations without modifying configuration files. The tool also supports appending recommendations to configuration files rather than replacing them in-place, and maintains automatic backups of modified postgresql.conf files in the system temp directory for easy restoration if needed.

According to GitGenius activity tracking, the repository shows extended response latencies on issues and pull requests, with a median response time of 7854.7 hours and mean of 19136.6 hours across tracked items. The most active contributor tracked is svenklemm with 11 recorded events, followed by jflambert with 4 events and bastian-vogl with 3 events. Question-type issues represent the most common label in tracked activity. The repository shares contributors with timescale/timescaledb, rust-lang/rust, and microsoft/vscode according to GitGenius linking analysis.

The project is released under the Apache 2.0 Open Source License and welcomes external contributions through the same contributor agreement process used by the main TimescaleDB project. Contributors are required to sign a Contributor License Agreement before their code can be merged. The tool's design philosophy emphasizes accessibility for operators who may lack deep database tuning expertise while still providing advanced options for users with specific deployment requirements or non-standard configurations.

timescaledb-tune
by
timescaletimescale/timescaledb-tune

Repository Details

Fetching additional details & charts...