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

251 字
2 分钟
...阅读
...评论
优化自托管 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 后,重启容器即可。

整个世界清净了。

评论区
Copyright © Bean Deng