Перейти к основному содержимому
Перейти к основному содержимому

Рекомендации по размеру и оборудованию

Этот гид обсуждает наши общие рекомендации по аппаратному обеспечению, вычислениям, памяти и конфигурациям дисков для пользователей с открытым исходным кодом. Если вы хотите упростить свою настройку, мы рекомендуем использовать ClickHouse Cloud, так как он автоматически масштабируется и адаптируется к вашим рабочим нагрузкам, минимизируя затраты на управление инфраструктурой.

Конфигурация вашего кластера ClickHouse сильно зависит от использования вашего приложения и паттернов рабочей нагрузки. При планировании вашей архитектуры вы должны учитывать следующие факторы:

  • Конкурентность (запросы в секунду)
  • Пропускная способность (строки, обрабатываемые в секунду)
  • Объем данных
  • Политика хранения данных
  • Затраты на оборудование
  • Затраты на обслуживание

Диск

Тип(ы) дисков, которые вы должны использовать с ClickHouse, зависят от объема данных, задержки или требований к пропускной способности.

Оптимизация для производительности

Для максимизации производительности мы рекомендуем напрямую подключать объемы SSD с предоставленным IOPS от AWS или аналогичное предложение от вашего облачного провайдера, что оптимизирует ввод-вывод.

Оптимизация для снижения затрат на хранение

Для снижения затрат вы можете использовать объемы SSD EBS общего назначения.

Вы также можете реализовать многослойное хранилище, используя SSD и HDD в архитектуре горячего/теплого/холодного хранения. Кроме того, возможно использование AWS S3 для хранения, чтобы разделить вычисления и хранение. Пожалуйста, ознакомьтесь с нашей инструкцией по использованию ClickHouse с открытым исходным кодом и разделением вычислений и хранения здесь. Разделение вычислений и хранения доступно по умолчанию в ClickHouse Cloud.

CPU

Какой CPU мне следует использовать?

Тип CPU, который вы должны использовать, зависит от вашего паттерна использования. В общем, однако, приложения с множеством частых конкурентных запросов, которые обрабатывают больше данных или используют ресурсоемкие UDF, потребуют больше ядер CPU.

Приложения с низкой задержкой или интерфейсом для клиентов

Для требований по задержке в десятках миллисекунд, таких как для задач, ориентированных на клиентов, мы рекомендуем серию EC2 i3 или i4i от AWS или аналогичные предложения от вашего облачного провайдера, которые оптимизированы для ввода-вывода.

Приложения с высокой конкурентностью

Для рабочих нагрузок, которым необходимо оптимизировать конкурентность (100+ запросов в секунду), мы рекомендуем серию C, оптимизированную для вычислений от AWS или аналогичное предложение от вашего облачного провайдера.

Случай использования хранения данных

Для рабочих нагрузок по хранению данных и выборочных аналитических запросов мы рекомендуем серию R, оптимизированную по памяти от AWS или аналогичное предложение от вашего облачного провайдера, так как они оптимизированы по памяти.


Какова должна быть загрузка CPU?

Нет стандартной цели по загрузке CPU для ClickHouse. Используйте инструмент, такой как iostat, чтобы измерять среднее использование CPU, и соответственно настраивайте размер ваших серверов для управления неожиданными всплесками трафика. Однако для аналитических или хранилищевых случаев использования с выборочными запросами вы должны нацеливаться на 10-20% использования CPU.

Сколько ядер CPU мне следует использовать?

Количество CPU, которое вы должны использовать, зависит от вашей рабочей нагрузки. Тем не менее, мы в общем рекомендуем следующие соотношения оперативной памяти к ядрам CPU в зависимости от типа вашего CPU:

  • M-type (случаи общего назначения): 4:1 соотношение памяти к ядрам CPU
  • R-type (случаи использования хранилищ данных): 8:1 соотношение памяти к ядрам CPU
  • C-type (случаи, оптимизированные для вычислений): 2:1 соотношение памяти к ядрам CPU

Например, при использовании M-type CPU мы рекомендуем выделять 100 ГБ памяти на каждые 25 ядер CPU. Чтобы определить, сколько памяти подходит для вашего приложения, необходимо профилирование использования памяти. Вы можете прочитать этот гид по отладке проблем с памятью или использовать встроенную панель мониторинга для отслеживания ClickHouse.

Память

Как и ваш выбор CPU, ваше соотношение памяти к хранилищу и памяти к CPU зависит от вашего случая. В общем, однако, чем больше у вас памяти, тем быстрее будут выполняться ваши запросы. Если ваше применение чувствительно к цене, меньшие объемы памяти также подходят, так как возможно включение настроек (max_bytes_before_external_group_by и max_bytes_before_external_sort), чтобы разрешить сброс данных на диск, но обратите внимание, что это может значительно повлиять на производительность запросов.

Каково должно быть соотношение памяти к хранилищу?

Для малых объемов данных приемлемо соотношение памяти к хранилищу 1:1, но общая память не должна быть меньше 8 ГБ.

Для сценариев с длительными сроками хранения данных или с высокими объемами данных мы рекомендуем соотношение памяти к хранилищу от 1:100 до 1:130. Например, 100 ГБ ОЗУ на каждую реплику, если вы храните 10 ТБ данных.

Для сценариев с частым доступом, таких как рабочие нагрузки для клиентов, мы рекомендуем использовать больше памяти с соотношением от 1:30 до 1:50.

Реплики

Мы рекомендуем иметь как минимум три реплики на шард (или две реплики с Amazon EBS). Кроме того, мы предлагаем вертикально масштабировать все реплики перед добавлением дополнительных реплик (горизонтальное масштабирование).

ClickHouse не выполняет автоматическое шардирование, и перешардинг вашего набора данных потребует значительных вычислительных ресурсов. Поэтому мы в общем рекомендуем использовать самый мощный сервер, доступный для предотвращения необходимости перешардинга ваших данных в будущем.

Рассмотрите возможность использования ClickHouse Cloud, который автоматически масштабируется и позволяет вам легко контролировать количество реплик для вашего случая использования.

Примерные конфигурации для крупных рабочих нагрузок

Конфигурации ClickHouse сильно зависят от конкретных требований вашего приложения. Пожалуйста, свяжитесь с отделом продаж, если вы хотите, чтобы мы помогли оптимизировать вашу архитектуру по стоимости и производительности.

Чтобы предоставить руководство (а не рекомендации), следующие примеры конфигураций пользователей ClickHouse в производстве:

Fortune 500 B2B SaaS

Хранение
Объем новых данных в месяц30TB
Общий объем хранения (сжатый)540TB
Срок хранения данных18 месяцев
Диск на узел25TB
CPU
Конкурентность200+ конкурентных запросов
Количество реплик (включая пару HA)44
vCPU на узел62
Общее количество vCPU2700
Память
Общая ОЗУ11TB
ОЗУ на реплику256GB
Соотношение ОЗУ к vCPU4:1
Соотношение ОЗУ к диску1:50

Fortune 500 Телеком Оператор для случая использования логирования

Хранение
Объем данных журналов в месяц4860TB
Общий объем хранения (сжатый)608TB
Срок хранения данных30 дней
Диск на узел13TB
CPU
Количество реплик (включая пару HA)38
vCPU на узел42
Общее количество vCPU1600
Память
Общая ОЗУ10TB
ОЗУ на реплику256GB
Соотношение ОЗУ к vCPU6:1
Соотношение ОЗУ к диску1:60

Дополнительное чтение

Ниже приведены опубликованные блоги о архитектуре от компаний, использующих ClickHouse с открытым исходным кодом: