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 |
Отчет о начале запроса содержит запрос и время начала запроса. Охватываются следующие атрибуты.
Атрибут | Description |
---|---|
GatewayObjectId | Уникальный идентификатор для шлюза. |
RequestId | Уникальный идентификатор для запроса шлюза. Это значение может быть одинаковым для нескольких запросов. |
DataSource | Содержит как тип источника данных, так и источник данных. |
QueryTrackingId | Уникальный идентификатор для запроса. Однако он может повторяться, если запрос завершится ошибкой и повторит попытку. |
QueryExecutionStartTimeUTC | Время начала выполнения запроса. |
QueryType | Тип запроса. Например, переданный запрос может быть обновлением Power BI или DirectQuery. Кроме того, это могут быть запросы из Power Apps и Power Automate. |
QueryText | Весь запрос, закодированный при помощи base64. |
EvaluationContext | Содержит артефакт (ie., набор данных для семантических моделей, dataflowsId и т. д.) вместе с дополнительными идентификаторами трассировки в зависимости от артефакта. Обратите внимание, что это поле заполняет только поддерживаемые рабочие нагрузки в Fabric, Power Platform, Azure Analysis Services и некоторые соединители в Azure Logic Apps. К ним относятся: семантические модели, поток данных 2-го поколения и потоки данных Power Platform. Она также включает рабочие нагрузки Azure Logic Apps для соединителей Mashup Query, HTTP и File Azure. Значение будет содержать разные идентификаторы трассировки в зависимости от используемой рабочей нагрузки. Потоки данных Power BI и Fabric 1-го поколения и отчеты Power BI с разбивкой на страницы не поддерживаются. |
Отчет об агрегации выполнения запроса содержит информацию о запросах, агрегированную за интервал времени по 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 | Среднее значение системного счетчика для временного окна агрегирования. |
Визуализация производительности шлюза
Теперь вы можете визуализировать данные, находящиеся в файлах журналов.
Скачайте шаблон производительности шлюза PBI и откройте его, используя Power BI Desktop.
Когда откроется диалоговое окно, убедитесь, что путь к папке соответствует значению в ReportFilePath.
Выберите Загрузить, и файл шаблона начинает загружать данные из ваших файлов журналов. Все визуальные элементы заполняются с использованием данных в отчетах.
При желании сохраните этот файл как PBIX и опубликуйте его в службе для автоматического обновления. Дополнительные сведения см. в публикации семантических моделей и отчетов из Power BI Desktop.
Вы также можете настроить этот файл шаблона в соответствии с вашими потребностями. Дополнительные сведения о шаблонах Power BI см. в этой записи блога Microsoft Power BI.
Мониторинг буферного хранилища
По умолчанию путь к буферному хранилищу для шлюза следующий: C:\Users\PBIEgwService\AppData\Local\Microsoft\On-premises data gateway\Spooler. Обязательно наблюдайте за этим расположением, чтобы убедиться, что на диске достаточно свободного места. Дополнительная информация: Буферизация данных на шлюзе
Медленно выполняющиеся запросы
Длительные запросы могут потребовать дополнительного изменения источника данных или дальнейшей оптимизации самого запроса. Это может быть либо для обновлений Power BI, либо для прямых запросов к базе данных, таких как Power BI DirectQuery, Power Apps или Azure Logic Apps.
По умолчанию шлюз выполняет базовое ведения журнала. Если вы изучаете медленные запросы, помимо использования функции мониторинга производительности, вы можете временно включить дополнительное ведение журнала для сбора дополнительных сведений журнала, включая журналы подсистемы mashup, строки запросов и подробную трассировку. Эти журналы записываются в то же место, что и обычные журналы шлюза. Для этого в локальном приложении шлюза данных выберите Диагностика>Подробное ведение журнала.
Включение этого параметра, вероятно, значительно увеличит размер журнала на основе использования шлюза. Мы рекомендуем после завершения просмотра журналов отключить подробное ведение журнала. Не рекомендуется оставлять этот параметр включенным при работе шлюза в обычном режиме.
Оптимизация производительности за счет потоковой передачи данных
По умолчанию локальный шлюз данных подполет данные перед возвращением в семантику модели, что может привести к снижению производительности во время операций загрузки и обновления данных. Поведение по умолчанию можно переопределить.
В файле 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>
В разделе Локальный шлюз данных>Параметры службы перезапустите шлюз.
Примечание.
Включение StreamBeforeRequestCompletes может привести к проблемам с надежностью запросов при использовании медленных источников данных или с нестабильными или ограниченными сетевыми подключениями.
Оптимизация производительности путем исключения определенных папок из антивирусной проверки
Чтобы избежать потенциального влияния на производительность, некоторые папки могут быть исключены из антивирусной проверки при использовании антивирусного программного обеспечения на уровне файлов на сервере, на котором установлен локальный шлюз данных. Если эти папки не исключены, вы можете наблюдать влияние на производительность и потенциально другие непредвиденные действия, так как эти папки получают большое количество операций записи и находятся в основе конвейеров данных локального шлюза данных.
Папки, которые могут быть исключены из антивирусной проверки на локальном сервере шлюза данных
Примечание.
Следующий диск-держатель представляет букву диска, на котором установлен локальный шлюз данных. Как правило, буква драйвера — C. В следующем месте владелец ServiceAccount представляет учетную запись службы, которая выполняет локальный шлюз данных. Учетная запись по умолчанию — PBIEgwService.
- Каталог ведения журнала: диск:\Windows\ServiceProfiles\ ServiceAccount \AppData\Local\Microsoft\Локальный шлюз данных
- Каталог хранилища Spool: Drive:\Windows\ServiceProfiles\ ServiceAccount \AppData\Local\Microsoft\On-locals data gateway\Spooler