ClickHouse容量规划与硬件建议

 转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。


前言

在使用clickhouse时,官方推荐使用其付费版本ClickHouse Cloud。因为它能够根据您的工作负载自动扩缩并自适应调整,同时将与基础设施管理相关的成本降到最低。

如果不使用ClickHouse Cloud,在架构规划时需要考虑:

  • 并发量(每秒请求数)

  • 吞吐量(每秒处理的行数)

  • 数据量

  • 数据保留策略

  • 硬件成本

  • 维护成本

磁盘

使用磁盘的类型,取决于数据量及对延迟或吞吐量的要求,官方主要从性能和成本两方面给了建议。

1. 重视性能

重视性能场景,官方建议建议直接挂载 AWS 的预置 IOPS SSD 卷,或使用云服务商提供的同类产品,以优化 IO 性能。

关于AWS的预调配 IOPS SSD 卷:

固态硬盘(SSD)支持预调配 IOPS SSD 卷。这种卷是性能最高的 Amazon EBS 存储卷,专为需要低延迟的 IOPS 密集型和吞吐量密集型关键工作负载而设计。预调配 IOPS SSD 卷在 99.9% 的时间里可提供预置 IOPS 性能。

Amazon EBS 提供了两种类型的预调配 IOPS SSD 卷:

  • 预调配 IOPS SSD(io2)Block Express 卷

  • 预调配 IOPS SSD(io1)卷

2. 重视成本

在重视成本场景,推荐下面几种方案:

1)使用AWS通用型 SSD EBS 卷

关于AWS的通用型 SSD EBS 卷:

通用型 SSD 卷在各种事务性工作负载的价格和性能之间实现平衡。其中包括虚拟桌面、中型单实例数据库、延迟敏感型交互式应用程序、开发和测试环境以及启动卷。建议为大多数工作负载使用这种卷。

Amazon EBS 提供以下类型的通用型 SSD 卷:

  • 通用型 SSD(gp3)卷

  • 通用型 SSD(gp2)卷

2)结合SSD 和 HDD,构建冷热分层(热/暖/冷)架构

3)使用 AWS S3 作为存储后端,以实现计算与存储分离

CPU

要选择的 CPU 类型取决于负载特征。一般来说,具有大量频繁并发查询、处理数据量较大,或使用计算密集型 UDF 的应用需要更多 CPU 核心。官方一般基于 CPU 类型推荐如下内存与 CPU 核心配比:

M 型(通用场景):    4 GB:1 的内存与 CPU 核心比例

R 型(数据仓库场景): 8 GB:1 的内存与 CPU 核心比例

C 型(计算优化场景): 2 GB:1 的内存与 CPU 核心比例

如果使用AWS服务,则推荐如下:

1)低延迟或面向客户的应用

对于延迟要求在几十毫秒级(例如面向客户的工作负载),推荐使用 AWS 的 EC2 i3 系列或 i4i 系列,或者云服务商中等价的、已针对 IO 优化的实例。

2)高并发应用

对于需要重点优化并发(每秒 100+ 查询)的工作负载,推荐使用 AWS 的计算优化型 C 系列,或云服务商中等价的产品。

3)数据仓库用例

对于数据仓库工作负载和临时分析查询,推荐使用 AWS 的 R 系列或云服务商中等价的产品,因为它们是内存优化型实例。

内存

与 CPU 的选择类似,内存与存储的比例以及内存与 CPU 的比例应根据具体用例来确定。内存越大,查询运行得越快。所需的 RAM 容量通常取决于:

  • 查询的复杂度;
  • 查询中需要处理的数据量。

1. 内存与存储的比例应是多少?

对于数据量较小的场景,1:1 的内存与存储比例是可以接受的,但总内存不应低于 8GB。

对于数据保留周期较长或数据量较大的用例,官方建议采用 1:100 到 1:130 的内存与存储比例。例如,如果存储了 10TB 的数据,建议每个副本配置 100GB 的 RAM。

对于访问频繁的用例,例如面向客户的在线工作负载,官方建议使用更多内存,采用 1:30 到 1:50 的内存与存储比例。

2. 内存参数优化

如果用例对成本较为敏感,可以使用较小的内存配置,因为可以启用以下2个相关配置将部分数据落盘,但需要注意,这可能会显著影响查询性能:

max_bytes_before_external_group_by:设置决定了将 GROUP BY 临时数据写入文件系统时的 RAM 消耗阈值(以字节为单位)。如果设置为 0(默认值),则表示禁用。

max_bytes_before_external_sort:设置决定了当 RAM 不足,是否使用外部存储执行排序(在磁盘上创建临时文件),如果其值为 0(默认值),则禁用外部排序。

副本数

官方建议每个分片至少配置三个副本(或在使用 Amazon EBS 时配置两个副本)。此外,官方建议在增加额外副本(水平扩展)之前,先对所有副本进行纵向扩容。

ClickHouse 不会自动分片,对数据集重新分片将需要大量计算资源。因此,官方通常建议尽可能使用规格更大的服务器,以避免将来需要对数据重新分片。

示例配置

ClickHouse 生产用户的示例配置:

1. Fortune 500 B2B SaaS

类型

配置

存储

每月新增数据量

30TB

总存储量(压缩后)

540TB

数据保留期

18 个月

每个节点的磁盘容量

25TB

CPU

并发度

200+ 个并发查询

副本数量(包括 HA 对)

44

每个节点的 vCPU 数

62

总 vCPU 数

2700

内存

总 RAM

11TB

每个副本的 RAM

256GB

RAM 与 vCPU 比例

4 GB:1

RAM 与磁盘比例

1:50

2. Fortune 500 电信运营商(日志用例)

类型

配置

存储

每月日志数据量

4860TB

总存储(压缩后)

608TB

数据保留期

30 天

每个节点磁盘容量

13TB

CPU

副本数量(包括 HA 对)

38

每个节点 vCPU 数量

42

总 vCPU 数量

1600

内存

总 RAM 容量

10TB

每个副本的 RAM

256GB

RAM 与 vCPU 比率

6GB:1

RAM 与磁盘比率

1:60

出处:本文梳理自ClickHouse官网https://clickhouse.com/,对部分内容做了补充细化。

欢迎关注SRE成长记一起探讨学习!↓↓↓

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值