Расчет конфигурации кластера
В этом разделе приведены общие рекомендации для расчета конфигурации кластера при использовании Managed Service for Greenplum® в качестве корпоративного хранилища данных
Рекомендации являются приблизительными. Реальное потребление ресурсов зависит от факторов, которые трудно предсказать на этапе планирования: сложность запросов, количество данных, обрабатываемых запросами, фактическая конкурентность запросов, настройки хранения данных в таблицах, степень сжатия, процент архивных данных и т. д.
Рекомендуется проводить нагрузочное тестирование продуктивного кластера перед вводом в эксплуатацию. При необходимости Managed Service for Greenplum® позволяет изменить конфигурацию кластера с минимальным временем простоя.
Конфигурация хостов-сегментов
На хостах-сегментах хранятся все данные и выполняются запросы, поэтому они требовательны к ресурсам. При выборе конфигурации необходимо учитывать как минимум следующие факторы:
- Предполагаемый объем данных.
- Ожидаемая конкурентность, то есть количество одновременно выполняемых запросов.
Расчет размера хранилища
При расчете хранилища кластера учитывайте следующие факторы:
- Зеркалирование. Увеличивает требуемый объем хранилища в два раза.
- Сжатие. Уменьшает требуемый объем хранилища. Степень сжатия может сильно варьироваться в зависимости от данных и выбранного алгоритма сжатия. Для расчета показатель сжатия принимается равным 3.
- Запас свободного места. Рекомендуемое заполнение хранилища при эксплуатации Managed Service for Greenplum® — не более 70%. Свободное место необходимо оставлять для транзакционных логов, spill-файлов, системных файлов.
С учетом этих факторов суммарный размер хранилища для всех хостов-сегментов можно брать примерно равным объему данных без сжатия:
Размер хранилища = <объем_данных_без_сжатия> × 2 ÷ 3 ÷ 0,7 = <объем_данных_без_сжатия> × 0,95
Объем данных, который предполагается хранить в холодном хранилище, используя модуль Yezzey, не следует учитывать при расчете размера хранилища Managed Service for Greenplum®.
О типах дисков, которые используются для организации хранилища, см. в разделе Типы дисков.
Расчет количества хостов-сегментов и количества сегментов на хост
Архитектура Greenplum® реализует параллелизацию обработки данных. Единицей параллелизации является сегмент. Чем больше сегментов в кластере, тем больше ресурсов выделяется на один запрос.
На одном хосте-сегменте могут располагаться один или несколько сегментов. Количество сегментов в кластере задается при его создании и в дальнейшем может быть увеличено путем расширения кластера. Расширение кластера — длительная операция, которая требует перераспределения всех данных по сегментам. Количество сегментов не может быть уменьшено.
При расчете количества сегментов для кластера средних размеров в качестве базового значения можно принять количество терабайтов в объеме данных без сжатия:
Общее количество сегментов = <объем_данных_без_сжатия_в_ТБ>
При невысокой конкурентности запросов (количество одновременно выполняющихся запросов) можно делать большее количество сегментов. При высокой конкурентности необходимо или уменьшать количество сегментов, или увеличивать ресурсы хостов-сегментов (vCPU, RAM).
Для продуктивных систем рекомендуется делать общее количество сегментов не меньше 8.
При расчете количества хостов-сегментов должно выполняться соотношение:
Общее количество сегментов = <количество_хостов-сегментов> × <количество_сегментов_на_хост>
Рекомендуется отдавать предпочтение большему количеству хостов-сегментов с меньшим количеством сегментов на хост. Максимально возможное количество хостов-сегментов в кластере — 32. При первоначальном проектировании кластера рекомендуется не приближаться к этому лимиту, чтобы сохранить возможность расширения кластера путем добавления хостов-сегментов.
Расчет количества ядер vCPU и оперативной памяти
При расчете количества ядер CPU следует опираться на объем данных и планируемую конкурентность нагрузки.
Для умеренной нагрузки можно брать 3 vCPU на сегмент. Таким образом, суммарное количество vCPU на всех хостах-сегментах равно:
Общее количество vCPU = <общее_количество_сегментов> × 3
При высокой нагрузке (от нескольких десятков до сотни одновременно выполняющихся запросов) ресурсы можно увеличивать до 15 vCPU на сегмент.
Количество ядер на хосте-сегменте определяется из вычисленных выше параметров по формуле:
Количество vCPU на хост-сегмент = <общее_количество_vCPU> / <количество_хостов-сегментов>
Выберите конфигурацию хоста-сегмента с наиболее близким к получившемуся количеством vCPU на хост-сегмент. Для продуктивных систем рекомендуется выбирать типы хостов io-optimized
.
Пример расчета конфигурации хостов-сегментов
Для хранения и обработки 20 ТБ несжатых данных с умеренным уровнем нагрузки понадобится кластер со следующими характеристиками хостов-сегментов:
-
Размер хранилища: 20 ТБ × 1 = 20 ТБ.
-
Количество сегментов: 20 ТБ × 1 сегмент/ТБ = 20.
-
Количество vCPU на сегментах: 20 сегментов × 3 vCPU/сегмент = 60.
-
Количество хостов-сегментов: 60 vCPU ÷ 16 vCPU/хост = 4.
Примечание
Для продуктивных систем выбирайте тип хоста
io-optimized
, где минимальное количество ядер на хост — 16. -
Размер хранилища на хост: 20 ТБ ÷ 4 хоста = 5 ТБ.
-
Количество сегментов на хост: 20 сегментов ÷ 4 хоста = 5.
Подробнее о классах хостов см. в разделе Доступные классы хостов.
Конфигурация хостов-мастеров
Хосты-мастеры предназначены для обработки подключений и координации работы сегментов. Такие хосты не хранят и не обрабатывают данные, поэтому они менее требовательны к производительности.
Для хостов-мастеров в большинстве случаев достаточно хостов типа standard
, с типом диска network-ssd
и объемом 100 ГБ.
Для высоконагруженных кластеров с большим количеством хостов-сегментов рекомендуется использовать для мастеров хосты типа io-optimized
.
Greenplum® и Greenplum Database® являются зарегистрированными товарными знаками или товарными знаками VMware, Inc в США и/или других странах.