timescale/timescaledb-tune

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

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 36 minutes ago
Added to GitGenius on April 8th, 2021
Created on November 20th, 2018
Open Issues & Pull Requests: 19 (+0)
Number of forks: 47
Total Stargazers: 502 (+0)
Total Subscribers: 26 (+0)

Repository Insights (GitGenius)

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

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

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

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.

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.

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.

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.