Какой должна быть конфигурация сервера для 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! До новых встреч! 🙂
Свежие комментарии