跳到主要内容
跳到主要内容
编辑此页

硬件配置和大小建议

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

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

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

磁盘

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

优化性能

为了最大化性能,我们建议直接挂载 来自 AWS 的预配置 IOPS SSD 卷 或您的云提供商的同等产品,这优化了 IO。

优化存储成本

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

您还可以使用 SSD 和 HDD 在 热/温/冷架构 中实现分层存储。或者,也可以使用 AWS S3 进行存储,以分离计算和存储。请参阅我们的指南,了解如何将开源 ClickHouse 与计算和存储分离一起使用 此处。计算和存储分离在 ClickHouse Cloud 中默认可用。

CPU

我应该使用哪个 CPU?

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

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

对于 10 毫秒级的延迟要求(例如面向客户的工作负载),我们建议使用 EC2 i3 系列i4i 系列 来自 AWS 或您的云提供商的同等产品,它们是 IO 优化的。

高并发应用程序

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

数据仓库用例

对于数据仓库工作负载和临时分析查询,我们建议使用来自 AWS 的 R 类型系列 或您的云提供商的同等产品,因为它们是内存优化的。


CPU 利用率应该是多少?

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

我应该使用多少 CPU 核心?

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

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

例如,当使用 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+ 并发查询
副本数(包括 HA 对)44
每个节点的 vCPU62
总 vCPU2700
内存
总 RAM11TB
每个副本的 RAM256GB
RAM 与 vCPU 比率4:1
RAM 与磁盘比率1:50

财富 500 强电信运营商日志记录用例

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

延伸阅读

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