优化自托管 Langfuse 的 ClickHouse 资源占用

最近在研究 Langfuse,用 docker 部署了一套,但是发现空载的情况下 ClickHouse CPU 占用也不低,并且磁盘持续在写入,一不注意,7 天已经写入了 200 多 GB。

通过如下命令发现,大部分磁盘占用都是 trace_log 表造成的:
SELECT table, formatReadableSize(size) as size, rows FROM (
SELECT
table,
database,
sum(bytes) AS size,
sum(rows) AS rows
FROM system.parts
WHERE active
GROUP BY table, database
ORDER BY size DESC
)
于是便联想到之前的一次 ClickHouse 优化经历,决定关闭各种 trace 日志,来减少 ClickHouse 的资源占用。
网上大部分教程没有提到 background_schedule_pool_log,但我发现它也会不断产生,也可以关闭。
<clickhouse>
<profiles>
<default>
<log_queries>0</log_queries>
<log_query_threads>0</log_query_threads>
</default>
</profiles>
<logger>
<level>warning</level>
<console>true</console>
</logger>
<asynchronous_metric_log remove="1" />
<backup_log remove="1" />
<error_log remove="1" />
<metric_log remove="1" />
<query_thread_log remove="1" />
<query_log remove="1" />
<query_views_log remove="1" />
<part_log remove="1" />
<session_log remove="1" />
<text_log remove="1" />
<trace_log remove="1" />
<crash_log remove="1" />
<opentelemetry_span_log remove="1" />
<zookeeper_log remove="1" />
<processors_profile_log remove="1" />
<background_schedule_pool_log remove="1" />
</clickhouse>
将上述配置挂载到 ClickHouse 容器的 /etc/clickhouse-server/config.d/logs.xml 后,重启容器即可。

整个世界清净了。
评论区