Skip to content

Commit 5a4bd6b

Browse files
committed
refactor: image size & heading in the blog
1 parent 665783d commit 5a4bd6b

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

content/blog/clickhouse-benchmarking.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ weight: 1
1010
"Imagine being a Formula One driver, racing at breakneck speeds, but without any telemetry data to guide you. It’s a thrilling ride, but one wrong turn or overheating engine could lead to disaster. Just like a pit crew relies on performance metrics to optimize the car's speed and handling, we utilize observability in ClickHouse to monitor our data system's health. These metrics provide crucial insights, allowing us to identify bottlenecks, prevent outages, and fine-tune performance, ensuring our data engine runs as smoothly and efficiently as a championship-winning race car."
1111

1212
<p align="center">
13-
<img src="/images/blog/clickhouse-benchmarking/clickhouse-storage.jpeg" alt="Clickhouse Storage">
13+
<img width="480" height="600" src="/images/blog/clickhouse-benchmarking/clickhouse-storage.jpeg" alt="Clickhouse Storage">
1414
</p>
1515

1616
In this blog, we'll dive into the process of deploying ClickHouse on AWS Elastic Container Service (ECS). We’ll also look at performance benchmarking to evaluate ClickHouse as a high-performance log storage backend. Our focus will be on its ingestion rates, query performance, scalability, and resource utilization.
@@ -216,7 +216,7 @@ All configuration changes were integrated into the Docker image using the base C
216216

217217
Now that the deployment architecture is established, let's move on to evaluating ClickHouse's performance through a series of benchmarking metrics.
218218

219-
### 2.1 Data Ingestion Performance Metrics
219+
### Data Ingestion Performance Metrics
220220

221221
- **Average Queries per Second:** This metric measures the sustained query ingestion rate during heavy load, offering insights into how well ClickHouse handles log ingestion.
222222

@@ -230,7 +230,7 @@ Now that the deployment architecture is established, let's move on to evaluating
230230

231231
- **Memory Usage (Tracked):** Monitoring the memory consumed by ClickHouse over time helps identify potential memory bottlenecks during sustained ingestion loads.
232232

233-
### 2.2 Query Execution Metrics
233+
### Query Execution Metrics
234234

235235
- **Response Times:** We measured the average query execution times, especially focusing on complex operations such as joins and aggregations.
236236

@@ -240,7 +240,7 @@ Now that the deployment architecture is established, let's move on to evaluating
240240

241241
- **Average Merges Running:** In ClickHouse's MergeTree engine, merges are essential for optimizing data. Tracking the number of concurrent merges gives an indication of how well ClickHouse is handling data restructuring.
242242

243-
### 2.3 Scalability Metrics
243+
### Scalability Metrics
244244

245245
- **Load Average:** This metric tracks the system load over a 15-minute window, providing a real-time view of how ClickHouse handles varying loads.
246246

@@ -250,7 +250,7 @@ Now that the deployment architecture is established, let's move on to evaluating
250250

251251
- **Memory Efficiency:** This metric monitors memory allocation efficiency and tracks peak memory usage during both data ingestion and query execution.
252252

253-
## 3. Log Ingestion Testing
253+
## Log Ingestion Testing
254254

255255
To benchmark log ingestion, we used the following table schema to handle log data:
256256

@@ -277,23 +277,23 @@ ORDER BY (toStartOfHour(time_local), status, request_path, remote_addr);
277277

278278
We used a public dataset containing 66 million records to perform ingestion tests. The dataset can be found at this [link](https://datasets-documentation.s3.eu-west-3.amazonaws.com/http_logs/data-66.csv.gz)
279279

280-
### 3.1 Baseline Performance Testing
280+
### Baseline Performance Testing
281281

282282
- **Initial Ingestion Rate:** We measured ingestion rates under normal load to evaluate whether real-time log ingestion was achievable.
283283

284284
- **Disk I/O:** Disk throughput was closely monitored to evaluate how well ClickHouse handles log writes and merges during ingestion.
285285

286-
### 3.2 High Load Performance
286+
### High Load Performance
287287

288288
- **Stress Testing:** Simulating log bursts under peak traffic allowed us to analyze the stability and performance of the ingestion pipeline.
289289

290290
- **Monitoring:** During high-load testing, key metrics such as CPU, memory, and I/O usage were tracked to ensure no bottlenecks surfaced.
291291

292-
## 4. Query Performance Testing
292+
## Query Performance Testing
293293

294294
To evaluate query performance, we designed several test queries ranging from simple `SELECT` statements to more complex join operations and aggregations.
295295

296-
### 4.1 Test Queries
296+
### Test Queries
297297

298298
- **Simple Select Queries:** Evaluating performance for basic queries that retrieve specific fields from the `logs` table.
299299

@@ -359,7 +359,7 @@ ORDER BY time ASC
359359
LIMIT 100000;
360360
```
361361

362-
### 4.2 Query Benchmarking Results
362+
### Query Benchmarking Results
363363

364364
- **Response Time:** We documented the average response times for each type of query to understand performance under load.
365365

0 commit comments

Comments
 (0)