跳至主要内容

尺寸和硬件建议

本指南讨论了我们针对开源用户的硬件、计算、内存和磁盘配置的一般建议。如果您想简化您的设置,我们建议您使用 ClickHouse Cloud,因为它可以自动扩展并适应您的工作负载,同时最大限度地降低与基础设施管理相关的成本。

您的 ClickHouse 集群的配置高度依赖于您的应用程序的使用案例和工作负载模式。在规划您的架构时,您必须考虑以下因素

  • 并发性(每秒请求数)
  • 吞吐量(每秒处理的行数)
  • 数据量
  • 数据保留策略
  • 硬件成本
  • 维护成本

磁盘

您应该与 ClickHouse 一起使用的磁盘类型取决于数据量、延迟或吞吐量要求。

优化性能

为了最大限度地提高性能,我们建议直接附加 来自 AWS 的预置 IOPS SSD 卷 或您云提供商的等效产品,这可以优化 IO。

优化存储成本

为了降低成本,您可以使用 通用 SSD EBS 卷

您还可以使用 SSD 和 HDD 在 热/温/冷架构 中实现分层存储。或者,AWS S3 用于存储也可以分离计算和存储。请参阅我们有关将开源 ClickHouse 与存储和计算分离结合使用的指南 此处。存储和计算分离在 ClickHouse Cloud 中默认可用。

CPU

我应该使用哪个 CPU?

您应该使用的 CPU 类型取决于您的使用模式。但是,一般来说,具有许多频繁并发查询、处理更多数据或使用计算密集型 UDF 的应用程序将需要更多 CPU 内核。

低延迟或面向客户的应用程序

对于面向客户的工作负载等需要 10 毫秒延迟的应用,我们建议使用 AWS 的 EC2 i3 系列i4i 系列 或您云提供商的等效产品,它们都是针对 IO 进行优化的。

高并发应用程序

对于需要优化并发性(每秒 100 多个查询)的工作负载,我们建议使用 AWS 的 计算优化型 C 系列 或您云提供商的等效产品。

数据仓库用例

对于数据仓库工作负载和 ad-hoc 分析查询,我们建议使用 AWS 的 R 型系列 或您云提供商的等效产品,因为它们是针对内存进行优化的。


CPU 利用率应该是多少?

ClickHouse 没有标准的 CPU 利用率目标。使用诸如 iostat 之类的工具来测量平均 CPU 使用率,并相应地调整服务器的大小以管理意外的流量峰值。但是,对于具有 ad-hoc 查询的分析或数据仓库用例,您应该将目标 CPU 利用率设定为 10-20%。

我应该使用多少个 CPU 内核?

您应该使用的 CPU 数量取决于您的工作负载。但是,我们通常根据您的 CPU 类型推荐以下内存与 CPU 内核比率

  • M 型(通用用例):内存与 CPU 内核比率为 4:1
  • R 型(数据仓库用例):内存与 CPU 内核比率为 8:1
  • C 型(计算优化用例):内存与 CPU 内核比率为 2:1

例如,当使用 M 型 CPU 时,我们建议为每个 25 个 CPU 内核配置 100GB 的内存。要确定适合您应用程序的内存量,需要分析您的内存使用情况。您可以阅读 本指南关于调试内存问题 或使用 内置的可观察性仪表板 来监控 ClickHouse。

内存

与您选择的 CPU 一样,您选择的内存与存储比率和内存与 CPU 比率取决于您的情况。但是,一般来说,内存越大,查询运行速度越快。如果您的用例对价格敏感,则较少的内存也能正常工作,因为可以启用设置(max_bytes_before_external_group_bymax_bytes_before_external_sort)以允许将数据溢出到磁盘,但请注意,这可能会显着影响查询性能。

内存与存储比率应该是多少?

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

对于数据保留时间长或数据量大的用例,我们建议使用 1:100 到 1:130 的内存与存储比率。例如,如果您存储 10TB 的数据,则每个副本 100GB 的 RAM。

对于频繁访问的用例(例如面向客户的工作负载),我们建议使用更多内存,内存与存储比率为 1:30 到 1:50。

副本

我们建议每个分片至少有三个副本(或使用 Amazon EBS 时有两个副本)。此外,我们建议在添加更多副本(横向扩展)之前先垂直扩展所有副本。

ClickHouse 不会自动分片,重新分片数据集将需要大量的计算资源。因此,我们通常建议使用可用的最大服务器,以避免将来需要重新分片数据。

考虑使用 ClickHouse Cloud,它可以自动扩展并允许您轻松控制用例的副本数量。

大型工作负载的示例配置

ClickHouse 配置高度依赖于您特定应用程序的要求。如果您希望我们帮助您优化架构以提高成本和性能,请 联系销售

为了提供指导(而非建议),以下是生产环境中 ClickHouse 用户的示例配置

财富 500 强 B2B SaaS

存储
每月新增数据量30TB
总存储量(压缩)540TB
数据保留期限18 个月
每个节点的磁盘25TB
CPU
并发200+ 个并发查询
副本数量(包括高可用对)44
每个节点的 vCPU62
总 vCPU2700
内存
总 RAM11TB
每个副本的 RAM256GB
RAM 与 vCPU 比例4:1
RAM 与磁盘比例1:50

财富 500 强电信运营商日志使用案例

存储
每月日志数据量4860TB
总存储量(压缩)608TB
数据保留期限30 天
每个节点的磁盘13TB
CPU
副本数量(包括高可用对)38
每个节点的 vCPU42
总 vCPU1600
内存
总 RAM10TB
每个副本的 RAM256GB
RAM 与 vCPU 比例6:1
RAM 与磁盘比例1:60

进一步阅读

以下是使用开源 ClickHouse 的公司发布的关于架构的博文