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

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

В этом руководстве представлены наши общие рекомендации касательно аппаратного обеспечения, вычислений, памяти и конфигурации дисков для пользователей с открытым исходным кодом. Если вы хотите упростить вашу настройку, мы рекомендуем использовать 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

Например, при использовании CPU типа M мы рекомендуем выделять 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: