Press "Enter" to skip to content

ClickHouse内存超限配置

ClickHouse exception, code: 1002, host: ..., port: 8123; Code: 241. DB::Exception: Memory limit (total) exceeded: would use 3.30 GiB (attempt to allocate chunk of 607376896 bytes), maximum: 3.28 GiB: While executing FillingRightJoinSide. (MEMORY_LIMIT_EXCEEDED)

由于测试机内存太小导致查询报错,直接死机挂掉了。默认配置内存是10GB,我们把它限制下。

如果你的报错是9.31GiB,说明你的机器内存大于10G,但是查询使用的数据量超过了默认值。

解决办法:

修改用户配置文件 /etc/clickhouse-server/users.xml,可以针对不同用户修改配置,我们这里只修改默认用户(在profiles–>default标签修改):

<!-- 修改最大使用内存,这里默认单位是 bytes -->
<!-- Maximum memory usage for processing single query, in bytes. -->
<max_memory_usage>3221225472</max_memory_usage>

<!-- 设置下group by 的使用量 -->
<max_bytes_before_external_group_by>1610612736</max_bytes_before_external_group_by>

配置完记得重启服务进程。

参阅:

查询复杂性的限制 | ClickHouse文档

GROUP BY | ClickHouse文档

One Comment

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

Captcha Code