ClickhouseBenchmark
Building ClickCannon - a tool for benchmarking ClickHouse
Summary
ClickCannon was created to answer how much CPU, memory, and disk are needed for ClickStack observability workloads, while accounting for schema, ingestion rate, hardware, and concurrent queries. It replays about 2 TiB of real OpenTelemetry trace data, converted to ClickHouse Native format with ZSTD compression, rather than relying only on synthetic datasets. A custom multithreaded Go reader/inserter provides control over uncompressed throughput and exposes stream metrics such as compressed and uncompressed bytes, row counts, and block counts, while the framework simulates users and query workloads during ingestion. The project evolved into an open-source, generic ClickHouse benchmarking tool for custom insert and query workloads, with fine-grained control over throughput, concurrency, and user behavior; the post reports that it can push substantial throughput from a single machine.
Context
ClickStack users needed estimates of the CPU, memory, and disk required for their observability workloads. Building a sizing model required measuring how schemas, ingestion rates, query patterns, and hardware configurations behave under realistic conditions, including concurrent querying while data is ingested.
Approach / What changed
ClickCannon replays representative OpenTelemetry data, controls insert throughput with a custom multithreaded Go reader/inserter, simulates concurrent users and query patterns, and collects detailed workload metrics. It was released as a generic framework for custom ClickHouse insert and query benchmarks with control over throughput, concurrency, and user behavior.
Takeaways
The benchmarks use about 2 TiB of real OpenTelemetry trace data converted to ClickHouse Native format with ZSTD compression.
The custom reader/inserter exposes compressed and uncompressed bytes, row counts, and block counts while controlling uncompressed ingest throughput.
ClickCannon evolved from an internal ClickStack sizing tool into an open-source framework for generic ClickHouse workloads.
Source and freshness
- Source
- clickhouse.com
- Published
- Added to Yomu
- Last updated
Summaries are generated from the original by a language model. Check the original before relying on it.
Keep reading
Related reading
The Good Stuff
Paid picks we use ourselves. Links carry a referral code — a subscription through one earns us a commission at no extra cost to you.
The best engineering reads, once a week
One useful email. Unsubscribe anytime.