ClickHouse System Tables

最近处理一个现场故障,现象是系统用一段时间就会变得很慢,clickhouse会重启,etcd发生长时间起不来,业务日志有代码报错。

总结下来大体发现如下几个问题:

  • clickhouse变慢、重启
  • 业务代码报空指针
  • etcd长时间起不来

业务代码问题先给到业务方进行排查,我们先看clickhouse和etcd问题

clickhouse变慢、重启

因为对于基础组件都没开系统日志,所以只能从观察系统的指标开始,通过netdata,发现clickhouse会不断的打到峰值

所以先从clickhouse查起,因为没有开日志,所以就从clickhoue提供的系统表开始查起

我们找了下官方资料,先锁定了如下几张表

  • system.query_log
  • system.query_thread_log
  • system.metrics
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
-- 查看可疑的sql
SELECT
address,
event_time,
client_hostname,
read_rows,
result_rows,
query_duration_ms
FROM system.query_log
WHERE event_date = '2023-09-09'
-- 查看执行sql最多的来源
SELECT
address,
COUNT(*) AS query_count
FROM system.query_thread
WHERE event_date = '2023-09-09' AND peak_memory_usage > 0
GROUP BY address;
-- 查看消耗内存最大的来源
SELECT
address,
SUM(peak_memory_usage) AS total_peak_memory
FROM system.query_thread
WHERE event_date = '2023-09-09' AND peak_memory_usage > 0
GROUP BY address;