Monitor and optimize on-premises data gateway performance (Мониторинг и оптимизация производительности локального шлюза данных)

Мониторинг производительности шлюза (общедоступная предварительная версия)

Для мониторинга производительности шлюзов администраторы обычно были зависимы от ручного мониторинга счетчиков производительности с помощью инструмента системного монитора Windows. Теперь мы предлагаем дополнительную регистрацию запросов и файл шаблона производительности шлюза PBI для визуализации результатов. Эта функция обеспечивает новую аналитику использования шлюза. Вы можете использовать ее для устранения проблем с медленным выполнением запросов.

Примечание.

В настоящее время эта функция доступна только для локального шлюза данных в стандартном режиме. Она недоступна для личного режима.

Примечание.

Диагностика шлюза не фиксирует диагностику, напрямую связанную с (виртуальной) машиной и ее сетью, например, пропускную способность или задержку. Однако эти диагностика могут повлиять на производительность шлюза. Вы можете использовать инструменты мониторинга ресурсов, чтобы контролировать свой компьютер.

Журнал производительности

По умолчанию эта функция включена.

Примечание.

  • В настоящее время запросы из емкости Премиум к шлюзу иногда отсутствуют в этом журнале. Мы активно работаем над исправлением этой проблемы.
  • В настоящее время запросы отчетов Power BI с разбивкой на страницы не регистрируются с помощью этого инструмента.

Настройка ведения журнала производительности

В файле конфигурации C:\Program Files\On-premises data gateway\Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.dll.config есть и другие значения, которые вы можете обновлять по мере необходимости:

  • ReportFilePath: определяет путь, в котором хранятся четыре файла журнала. По умолчанию: либо путь \Users\PBIEgwService\AppData\Local\Microsoft\On-premises data gateway\Report, либо \Windows\ServiceProfiles\PBIEgwService\AppData\Local\Microsoft\On-premises data gateway\Report. Путь зависит от версии ОС. Если вы используете учетную запись службы для шлюза, отличную от PBIEgwService, замените эту часть пути именем учетной записи службы.
  • ReportFileCount. Определяет количество сохраняемых файлов журнала каждого вида. Значение по умолчанию — 10.
  • ReportFileSizeInBytes. Определяет размер файла для обслуживания. Значение по умолчанию — 104 857 600.
  • QueryExecutionAggregationTimeInMinutes. Определяет количество минут, на протяжении которых выполняется статистическое вычисление информации о выполнении запросов. Значение по умолчанию равно 5.
  • SystemCounterAggregationTimeInMinutes. Определяет количество минут, на протяжении которых выполняется статистическое вычисление системного счетчика. Значение по умолчанию равно 5.

После внесения изменений в файл конфигурации перезапустите шлюз, чтобы эти значения конфигурации вступили в силу. Теперь файлы отчета создаются в расположении, указанном для ReportFilePath.

Примечание.

Это может занять до 10 минут плюс время, установленное для параметра QueryExecutionAggregationTimeInMinutes в файле конфигурации, пока файлы не начнут появляться в папке.

Сведения о журналах производительности

При включении этой функции создаются четыре новых файла журнала:

  • Отчет о выполнении запросов.
  • Отчет о запуске запросов.
  • Отчет об агрегации выполнения запросов.
  • Отчет об агрегации счетчиков системы

Отчет о выполнении запроса содержит подробную информацию о выполнении запроса. Охватываются следующие атрибуты.

Атрибут Description
GatewayObjectId Уникальный идентификатор для шлюза.
RequestId Уникальный идентификатор для запроса шлюза. Это значение может быть одинаковым для нескольких запросов.
DataSource Содержит как тип источника данных, так и источник данных.
QueryTrackingId Уникальный идентификатор для запроса. Однако он может повторяться, если запрос завершится ошибкой и повторит попытку.
QueryExecutionEndTimeUTC Время завершения выполнения запроса.
QueryExecutionDuration (мс) Продолжительность выполнения запроса.
QueryType Тип запроса. Например, переданный запрос может быть обновлением Power BI или DirectQuery. Кроме того, это могут быть запросы из Power Apps и Power Automate.
DataProcessingEndTimeUTC Время завершения действий по обработке данных, таких как буферизация, получение данных, сжатие и обработка данных.
DataProcessingDuration (мс) Длительность операций обработки данных, таких как буферизация, получение данных, сжатие и обработка данных.
Успешно Указывает, успешно ли выполнен запрос, или произошел сбой.
ErrorMessage Если запрос не выполнен, указывается сообщение об ошибке.
SpoolingDiskWritingDuration (мс) Указывает время, в течение которого шлюз записывает все данные на диск
SpoolingDiskReadingDuration (мс) Указывает время, в течение которого шлюз считывает все данные на диск
SpoolingTotalDataSize (байты) Размер (сжатый) данных, которые записываются на диск или считываются с диска
DataReadingAndSerializationDuration (мс) Указывает время, которое требуется шлюзу для считывания данных из источника данных и их сериализации в пакеты.
DiskRead (байт/с) Указывает количество байтов, считанных шлюзом за секунду. DiskRead(байт/с) = SpoolingTotalDataSize / SpoolingDiskReadingDuration
DiskWrite (байт/с) Указывает количество байтов, записанных шлюзом в секунду. DiskWrite(байт/с) = SpoolingTotalDataSize / SpoolingDiskWritingDuration

Отчет о начале запроса содержит запрос и время начала запроса. Охватываются следующие атрибуты.

Примечание.

Функция EvaluationContext отображается без включения дополнительного ведения журнала для потоков данных Power BI и потока данных 2-го поколения только для пользователей на лицензиях Pro. Для просмотра потоков данных Power BI для пользователей на лицензиях Premium по-прежнему требуется дополнительное ведение журнала.

Атрибут Description
GatewayObjectId Уникальный идентификатор для шлюза.
RequestId Уникальный идентификатор для запроса шлюза. Это значение может быть одинаковым для нескольких запросов.
DataSource Содержит как тип источника данных, так и источник данных.
QueryTrackingId Уникальный идентификатор для запроса. Однако он может повторяться, если запрос завершится ошибкой и повторит попытку.
QueryExecutionStartTimeUTC Время начала выполнения запроса.
QueryType Тип запроса. Например, переданный запрос может быть обновлением Power BI или DirectQuery. Кроме того, это могут быть запросы из Power Apps и Power Automate.
QueryText Весь запрос, закодированный при помощи base64.
EvaluationContext Содержит артефакт (то есть ModelID, DataflowsId) вместе с дополнительными данными в зависимости от артефакта. Обратите внимание, что это поле заполняется только потоками данных Dataflow 2-го поколения и Power Platform.

Отчет об агрегации выполнения запроса содержит информацию о запросах, агрегированную за интервал времени по GatewayObjectId, DataSource, Success и QueryType. Значение по умолчанию составляет 5 минут, но вы можете его настроить. Охватываются следующие атрибуты.

Атрибут Description
GatewayObjectId Уникальный идентификатор для шлюза.
AggregationStartTimeUTC Начало временного окна, для которого были агрегированы атрибуты запроса.
AggregationEndTimeUTC Конец временного окна, для которого были агрегированы атрибуты запроса.
DataSource Содержит как тип источника данных, так и источник данных.
Успешно Указывает, успешно ли выполнен запрос, или произошел сбой.
AverageQueryExecutionDuration (мс) Среднее время выполнения запроса для окна времени агрегирования.
MaxQueryExecutionDuration (мс) Максимальное время выполнения запроса для окна времени агрегирования.
MinQueryExecutionDuration (мс) Минимальное время выполнения запроса для окна времени агрегирования.
QueryType Тип запроса. Например, переданный запрос может быть обновлением Power BI или DirectQuery. Кроме того, это могут быть запросы из Power Apps и Power Automate.
AverageDataProcessingDuration (мс) Среднее время операций обработки данных, таких как буферизация, получение данных, сжатие и обработка данных, для окна времени агрегирования.
MaxDataProcessingDuration (мс) Максимальное время операций обработки данных, таких как буферизация, получение данных, сжатие и обработка данных, для окна времени агрегирования.
MinDataProcessingDuration (мс) Минимальное время операций обработки данных, таких как буферизация, получение данных, сжатие и обработка данных, для окна времени агрегирования.
Численность количество запросов;

Отчет об агрегировании системных счетчиков содержит значения системных счетчиков, агрегированные по временному интервалу. Значение по умолчанию составляет 5 минут, но вы можете его настроить. Охватываются следующие атрибуты.

Атрибут Description
GatewayObjectId Уникальный идентификатор для шлюза.
AggregationStartTimeUTC Начало временного окна для агрегированных системных счетчиков.
AggregationEndTimeUTC Конец временного окна для агрегированных системных счетчиков.
CounterName Системные счетчики применяются к одному серверу, на котором размещен узел шлюза, и включают:
SystemCPUPercent: ЦП, используемый на сервере в процентах от общего объема доступных ЦП.
SystemMEMUsedPercent: память, используемая на сервере в процентах от общего объема доступной памяти.
GatewayCPUPercent: сумма процента ЦП, используемого процессом шлюза на каждом ядре. Чтобы получить процент ЦП, используемого на сервере, разделите GatewayCPUPercent на количество ядер.
GatewayMEMKb: сумма общего объема памяти в килобайтах, используемых процессом шлюза.
Max Максимальное значение системного счетчика для временного окна агрегирования.
Min Минимальное значение системного счетчика для временного окна агрегирования.
Average Среднее значение системного счетчика для временного окна агрегирования.

Визуализация производительности шлюза

Теперь вы можете визуализировать данные, находящиеся в файлах журналов.

  1. Скачайте шаблон производительности шлюза PBI и откройте его, используя Power BI Desktop.

  2. Когда откроется диалоговое окно, убедитесь, что путь к папке соответствует значению в ReportFilePath.

    Pop-up for the folder path.

  3. Выберите Загрузить, и файл шаблона начинает загружать данные из ваших файлов журналов. Все визуальные элементы заполняются с использованием данных в отчетах.

  4. При желании сохраните этот файл как PBIX и опубликуйте его в службе для автоматического обновления. Дополнительные сведения см. в публикации семантических моделей и отчетов из Power BI Desktop.

Вы также можете настроить этот файл шаблона в соответствии с вашими потребностями. Дополнительные сведения о шаблонах Power BI см. в этой записи блога Microsoft Power BI.

Мониторинг буферного хранилища

По умолчанию путь к буферному хранилищу для шлюза следующий: C:\Users\PBIEgwService\AppData\Local\Microsoft\On-premises data gateway\Spooler. Обязательно наблюдайте за этим расположением, чтобы убедиться, что на диске достаточно свободного места. Дополнительная информация: Буферизация данных на шлюзе

Мониторинг параллелизма членов шлюза

По умолчанию ограничение количества запросов, которые могут выполняться одновременно на узле шлюза, равно 40. Это ограничение часто приводит к тому, что входящие запросы будут получать очереди, ожидающие выполнения в течение длительного времени, что приведет к снижению производительности и типу времени ожидания ошибок. Если вы подозреваете, что член шлюза достигает этого ограничения, включите дополнительное ведение журнала, экспортируйте журналы шлюза, просмотрите файлы Mashup*.log, найдите "runningCount" и "pendingCount" ключевое слово и убедитесь, что "runningCount" часто приближается к 40, или если "ожидающийcount" часто превышает нулю. Дополнительные сведения о планировании и масштабировании шлюза см. в этом документе .

Медленно выполняющиеся запросы

Длительные запросы могут потребовать дополнительного изменения источника данных или дальнейшей оптимизации самого запроса. Это может быть либо для обновлений Power BI, либо для прямых запросов к базе данных, таких как Power BI DirectQuery, Power Apps или Azure Logic Apps.

По умолчанию шлюз выполняет базовое ведения журнала. Если вы изучаете медленные запросы, помимо использования функции мониторинга производительности, вы можете временно включить дополнительное ведение журнала для сбора дополнительных сведений журнала, включая журналы подсистемы mashup, строки запросов и подробную трассировку. Эти журналы записываются в то же место, что и обычные журналы шлюза. Для этого в локальном приложении шлюза данных выберите Диагностика>Подробное ведение журнала.

Turn on additional logging.

Включение этого параметра, вероятно, значительно увеличит размер журнала на основе использования шлюза. Мы рекомендуем после завершения просмотра журналов отключить подробное ведение журнала. Не рекомендуется оставлять этот параметр включенным при работе шлюза в обычном режиме.

Оптимизация производительности за счет потоковой передачи данных

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

  1. В файле C:\Program Files\On-Premises data gateway\Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.dll.config установите параметр StreamBeforeRequestCompletes как True, а затем сохраните.

    <setting name="StreamBeforeRequestCompletes" serializeAs="String">
       <value>True</value>
    </setting>
    
  2. В разделе Локальный шлюз данных>Параметры службы перезапустите шлюз.

Оптимизация производительности путем исключения определенных папок из антивирусной проверки

Чтобы избежать потенциального влияния на производительность, некоторые папки могут быть исключены из антивирусной проверки при использовании антивирусного программного обеспечения на уровне файлов на сервере, на котором установлен локальный шлюз данных. Если эти папки не исключены, вы можете наблюдать влияние на производительность и потенциально другие непредвиденные действия, так как эти папки получают большое количество операций записи и находятся в основе конвейеров данных локального шлюза данных.

Папки, которые могут быть исключены из антивирусной проверки на локальном сервере шлюза данных

Примечание.

Следующий диск-держатель представляет букву диска, на котором установлен локальный шлюз данных. Как правило, буква драйвера — C. В следующем месте владелец ServiceAccount представляет учетную запись службы, которая выполняет локальный шлюз данных. Учетная запись по умолчанию — PBIEgwService.

  • Каталог ведения журнала: диск:\Windows\ServiceProfiles\ ServiceAccount \AppData\Local\Microsoft\Локальный шлюз данных
  • Каталог хранилища Spool: Drive:\Windows\ServiceProfiles\ ServiceAccount \AppData\Local\Microsoft\On-locals data gateway\Spooler

Следующие шаги