微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Clickhouse 内存问题

如何解决Clickhouse 内存问题

我有一个包含大约 20 亿行的表,我尝试从中查询 max(id)。 Id 不是表格的排序键,表格使用的是表格引擎 mergeTree

无论我尝试什么,都会出现内存错误。这并不止于此一个查询。一旦我尝试完全(垂直)查询任何表以查找数据,我的 12 GB 内存就不够用了。现在我知道我可以添加更多,但这不是重点。 Clickhouse 是否按照设计在没有足够内存时抛出错误?是否有设置告诉 clickhouse 改用磁盘?

sql 错误 [241]:ClickHouse 异常,代码:241,主机:XXXXXX,端口:8123;代码:241,e.displayText() = DB::Exception:超出内存限制(用于查询):将使用 9.32 GiB(尝试分配 9440624 字节的块),最大值:9.31 GiB(版本 21.4.6.55(官方构建) )

解决方法

Alexey Milovidov 不同意将最低 RAM 要求写入 CH 文档。但我会说 32 GB 是生产 CH 的最低要求。

至少:

  • 您需要降低标记缓存,因为它是 5GB!!!!默认情况下(设置为 500MB)。
  • 您需要将 max_block_size 降低到 16384。
  • 您需要将 max_threads 降低到 2。
  • 您需要将 max_bytes_before_external_group_by 设置为 3GB。
  • 您需要将aggregation_memory_efficient_merge_threads 设置为1。
,

对我来说,有效的是将最大服务器内存使用量从 0.9 更改为 1.2。

1.2 --> config.xml

感谢您的回复,因为它最终让我做到了这一点。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。