Общие подходы к оптимизации работы с платформой QlikView
1. Факторы влияющие на производительность работы с платформой Qlikview:
Фактор 1. Обеспечение максимально возможной производительности сервера QlikView на данном
оборудовании (это влияет на скорость вычисления агрегатов, преобразование данных и
масштабирование приложения при подключении большего количества пользователей и/или увеличении
объема анализируемых данных).
Фактор 2. Обеспечение максимально возможной производительности при обмене данными по сети
между сервером QlikView и клиентской станцией пользователя.
Фактор 3. Обеспечение максимально возможной производительности работы системы визуализации в
браузере (это влияет на интерактивность приложения в части быстроты прорисовки объектов
приложения: графиков, кнопок, таблиц, карт, закладок и прочих видимых для пользователя элементов
приложения).
Перечисленные факторы равноправны и полный провал в производительности по одному из них
невозможно компенсировать сколь угодно высокой производительностью другого фактора.
2. Оптимизация производительности сервера (фактор 1) состоит из трех шагов:
2.1. Подбор максимально производительного оборудования. К составляющим этой производительности
относятся:
Выбор процессора архитектуры Intel.
Выбор конфигурации сервера, обеспечивающей максимально возможную производительность связки «процессор – шина данных – оперативная память». На практике это означает выбор сервера с максимально возможной частотой работы оперативной памяти, шины и процессора. Т.е. это означает что выбор сервера с меньшим количеством ядер, но работающих на более высокой частоте – может оказаться лучшим решением, чем выбор сервера с огромным количеством ядер, работающих на более низкой частоте. Этому нужно уделять пристальное внимание, т.к.
производители сейчас предпочитают продавать заказчику процессоры с максимально возможным количеством ядер.
2.2. Настройка параметров оборудования сервера в режимы, обеспечивающие максимально возможное
быстродействие под нагрузкой, формируемой сервером QlikView. К этим параметрам относятся:
Установка в сервер объема оперативной памяти, обеспечивающей максимально возможную производительность связки «процессор – шина данных – оперативная память». Некоторые модели серверов автоматически снижают частоту работы связки «процессор – шина данных – оперативная память» при превышении некоторого объема оперативной памяти.
Правильная установка в сервер модулей оперативной памяти в слоты материнской платы. Для каждой материнской платы существуют списки поддерживаемых типов модулей оперативной памяти и правила их установки в зависимости от объема модулей и общего объема устанавливаемой оперативной памяти. Неудовлетворение этих требований может существенно снижать производительность сервера.
Настройка параметров BIOS, при условии, что они поддерживаются конкретной моделью сервера
и установленного в нем процессора:
Отключение режима разделения сервера на различные вычислительные разделы (NUMA).
Обычно это параметр «Node Interleaving» = Enabled
Включение режима Turbo Boost (применимо для процессоров Intel).
Обычно это параметры «Intel Turbo Boost Technology» = Enabled и «Turbo Boost Optimization» = Optimized for Performance
Отключение Hyper threading.
Обычно это параметр «Hyper threading» = Disable
Отключение режима Hardware pre-fetch.
Обычно это параметр «Hardware pre-fetch» = Disable
Настройка параметров энергосбережения в режим, обеспечивающий максимальную производительность.
Например, «HP Power Profile» = Maximum Performance
2.3. Настройка параметров операционной системы Windows Server, обеспечивающих максимально возможное быстродействие под нагрузкой, формируемой сервером QlikView. Полный список рекомендаций Microsoft можно найти здесь http://msdn.microsoft.com/en-us/library/windows/hardware/dn529134.aspx. Я рекомендую, как минимум сфокусироваться на следующих параметрах и способах их настройки:
Установка фиксированного размера файла виртуальной памяти. QlikView не использует виртуальную память. Поэтому вполне достаточно 20GB файла с фиксированным размером.
Установка схемы энергосбережения в режим, обеспечивающий максимальную производительность. Для этого для серверов Windows 2008 необходимо выполнить команду
Powercfg -setactive scheme_min
Максимальное использование функции Turbo Boost (для процессоров Intel). Для этого
применительно к серверам Windows 2008 необходимо выполнить команды:
Powercfg -setacvalueindex scheme_current sub_processor 45bcc044-d885-43e2-8605-ee0ec6e96b59
100 Powercfg -setactive scheme_current
и
Powercfg -setacvalueindex scheme_current sub_processor 893dee8e-2bef-41e0-89c6-b55d0929964c
100 Powercfg -setactive scheme_current
3. Оптимизация производительности при обмене данными по сети (фактор 2) состоит из единственного шага:
3.1. Снижение объема данных передающихся по сети возможно путем указания ограничений на объем отображаемых данных в используемых объектах приложения QlikView.
Например, если пользователю достаточно получать таблицу из 10-20 строк или график по 10-20 значениям, то нужно установить лимиты на вывод именно этого количества строк таблицы или значений на графике. Такой подход позволит существенно увеличить производительность, т.к. на рабочую станцию пользователя будет передаваться, а затем и прорисовываться только ограниченный объем данных.
4. Оптимизация процесса визуализации объектов на рабочем месте пользователя (фактор 3) состоит из трех
шагов:
4.1. Оптимизация прорисовки визуальных элементов. Прорисовка визуальных элементов происходит всегда
только на клиентском компьютере, в браузере. Поэтому ускорение прорисовки может быть достигнуто
совокупностью нескольких вещей:
Выбор клиентской станции, обеспечивающей требуемое быстродействие (это может быть существенно для планшетов).
Выбора браузера, обеспечивающего максимальную производительность обработки скриптов AJAX.
Оптимизация количества и параметров объектов визуализации в самом приложении QlikView.
4.2. Оптимизация объектов визуализации в приложении QlikView – это всегда совокупность трех вещей:
Введение условного расчета свойств объекта. Т.е. в свойствах каждого объекта могут быть прописаны условия, обеспечивающие минимизацию его перерисовок на экране пользователя. Т.е. перерисовка объекта выполняется только в случае, если объект действительно должен быть изменен после выполнения пользователем какого-то действия. Целесообразность задания правил расчета объекта должна быть оценена для каждого объекта.
Введение условий на отображение объектов. Т.е. для объектов, отображение которых не требуется на экране (например, скрывающихся за другими объектами) – их визуализация должна быть отключена. Они должны появляться и прорисовываться на экране только в тот момент, когда они действительно нужны для пользователя и требуется изменение их внешнего вида. Возможность скрытия объекта должна быть оценена для каждого объекта.
Уменьшения количества одновременно отображаемых визуальных объектов на экране пользователя. При возможности распределить часть информации пользователя по нескольким закладкам – это нужно сделать.