Какой должна быть конфигурация сервера для QlikView, сколько оперативной памяти (RAM) потребуется прямо сейчас, и как решение масштабируется впоследствии? Сегодня вы получите понимание о том, как ответить на эти вопросы, так как мы поговорим о сайзинге сервера для QlikView или Qlik Sense.

С выбором сервера для QlikView так или иначе сталкиваются все, поэтому этот материал мы написали частично на основе собственного опыта и частично на основе очень полезного документа от Сергея Полехина, архитектора решений Qlik в России и СНГ: «Программно-аппаратная конфигурация сервера QlikView: критерии выбора».

Критерии выбора сервера: О чем нужно не забыть ни в коем случае

Для тех, кто не любит читать обоснования, а хочет просто получить руководство к действию, Сергей Полехин приводит в сжатом виде критерии выбора оборудования для серверов QlikView и параметров, требующих настройки для обеспечения максимальной производительности серверов QlikView.

Критерий/параметр

Рекомендуемые значения

Развертывание QlikView в виртуальной среде

Не рекомендуется – для продуктивной среды;

Возможно – для сред разработки, тестирования и обучения.

Рекомендуемая аппаратная архитектура серверов

Рекомендуемой архитектурой для серверов QlikView является UMA. В случае использования серверов с архитектурой NUMA, позаботьтесь об отключении режима NUMA в BIOS вашего сервера.

Количество физических процессоров на сервере

Рекомендуется использование серверов с не более чем 2-4-мя процессорами. Основной критерий выбора аппаратной платформы – наличие выделенных высокоскоростных шин межпроцессорного взаимодействия между каждой парой процессоров (для архитектуры NUMA).

Количество физических ядер в процессоре

Рекомендуется выбирать процессоры обладающие не с большИм количеством ядер, а процессоры, обеспечивающие работу ядер на бОльшей тактовой частоте. Как правило, не рекомендуется использовать суммарное количество ядер на одном сервере более 20-24.

Поддержка нескольких логических вычислительных потоков в ядре

Общая производительность сервера QlikView может снижаться при включении поддержки нескольких логических вычислительных потоков (например, Intel HyperThreading). Влияние этих настроек требует тестирования на конкретных моделях используемых вами серверов.

Быстродействие связки CPU-Шина данных-RAM. Использование больших объемов оперативной памяти

Сбалансированность работы оборудования и максимальное быстродействие сервера QlikView обеспечивается при максимально возможной производительности всей связки «Процессор – Шина данных – Оперативная память».

Обращайте пристальное внимание на частоты работы связки RAM-Шина Данных-CPU для планируемых вами к использованию объемов RAM.

Масштабирование

Поддерживаются оба режима масштабирования: Scale-Out и Scale-Up.

Масштабирование в режиме Scale-Out является более предпочтительным в большинстве сценариев использования QlikView.

Настройки операционной системы

Переключите профиль энергосбережения операционной систем Windows Server в режим «Максимальная производительность».

RAM: Формула расчета оперативной памяти для сервера QlikView

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

  • оперативная память (RAM),
  • центральный процессор (CPU)
  • и шина данных.

По рекомендации вендора, для серверов QlikView целесообразнее использовать существующие на данный момент аппаратные серверы, имеющие не более 4-х процессоров, между каждой парой которых существуют выделенные высокопроизводительные шины межпроцессорного взаимодействия.

НА ЗАМЕТКУ! Важно не большое количество ядер, а их производительность, связанная с частотой их собственной работы, скоростью взаимодействия с шиной данных и памятью. Поэтому на сервере QlikView процессоры с меньшим количеством ядер (но при этом большей частотой их работы) могут оказаться существенно производительнее процессоров с большим количеством ядер, но работающих на более низкой частоте.

При этом, производительность одного из наиболее медленных компонентов современных серверов – дисков (HDD) фактически не влияет на производительность сервера QlikView/Qlik Sense. Именно поэтому сегодня мы подробно рассмотрим наиболее существенный компонент «железа» для сервера – RAM.

От чего зависит необходимый объем RAM?

Зависит он от четырех составляющих:

  • объема загружаемых данных,
  • количества пользователей, работающих с приложением одновременно,
  • количества приложений ,
  • дизайна приложений, то есть от сложности вычислений в них.

Расчет RAM: тестовая загрузка

Поэтому для расчета необходимой мощности нужно для начала  определить данные, которые будут загружаться. Для расчета делаем тестовую загрузку данных и берем только «сырые» данные, только необходимые поля из необходимых таблиц, естественно, не включая служебных дополнений (например, индексов). Этот объем является основой расчета.

Отмечу, что при загрузке в оперативную память возможно дополнительное сжатие данных (за счет побитового индексирования при колончатой структуре данных) от 2 до 15 раз. Сжатие зависит от повторяемости значения поля в записях, при большей повторяемости – большее сжатие.

Это примерный объем памяти, необходимый на одного пользователя. Каждый следующий пользователь потребует от 5 до 10% дополнительной памяти. В расчет, конечно, берутся только одновременно работающие пользователи. То есть, если в системе потенциально работают 200 пользователей, предположим, что 60 работают одновременно, и тогда используем коэффициент 3.

При наличии сложных вычислений в модели, необходимо предусмотреть память для них.

Расчет RAM: официальная формула от Qlik

Формула вычисления оперативной памяти от вендора, Qlik, в общем виде имеет такой формат:

RAM = (RAMuser × No. users) + RAMinitial

где

RAM〗initial = QVWsizedisk × FileSizeMultiplier; самый минимальный объем ОЗУ для любого приложения

RAM〗user =〖RAMinitial × userRAMratio; это объем памяти, который потребляет каждый пользователь, работающий с приложением.

QVWsizedisk = SourceData × (1 – CompressionRatio); это объем файла QlikView на диске.

НА ЗАМЕТКУ!

userRAMratio: варьируется от 1%–10%

FileSizeMultiplier: варьируется от 2–10

CompressionRatio: варьируется от 20%–90%

Скачайте приложение RAM Calc.qvw, которое поможет рассчитать необходимый объем оперативной памяти в соответствии с формулой.

Qlik легко масштабируется, то в зависимости от выбранной стратегии масштабирования, можно увеличивать производительность индивидуальных серверов (Scale-Up), увеличивать количество серверов (Scale-Out) или использовать оба способа одновременно.

Хороших вам серверов для QlikView и Qlik Sense! До новых встреч! 🙂