Диагностика и мониторинг производительности в Reliable Actors
В среде выполнения субъектов Reliable Actors предусмотрены события EventSource и счетчики производительности. содержащие полезную информацию о работоспособности среды выполнения и помогающие устранять неполадки и контролировать производительность.
События EventSource
Имя поставщика EventSource для среды выполнения Reliable Actors — Microsoft-ServiceFabric-Actors. События из этого источника отображаются в окне Diagnostics Events (События диагностики) при отладке приложения субъекта в Visual Studio.
Для сбора и просмотра событий EventSource вы можете использовать такие инструменты и технологии, как PerfView, диагностика Azure, семантическое ведение журналов и библиотеки Microsoft TraceEvent.
Ключевые слова
Все события EventSource надежных субъектов связаны с одним или несколькими ключевыми словами. Это позволяет фильтровать собранные события. Определены указанные ниже биты ключевых слов.
бит | Description |
---|---|
0x1 | Набор важных событий, отражающих общую работоспособность среды выполнения субъектов Service Fabric. |
0x2 | Набор событий, описывающих вызовы методов для субъекта. Дополнительные сведения см. в статье Общие сведения о надежных субъектах Service Fabric. |
0x4 | Набор событий, связанных с состоянием субъекта. Дополнительные сведения см. в статье Управление состоянием субъектов Reliable Actors. |
0x8 | Набор событий, связанных с поочередным параллелизмом. Дополнительные сведения см. в разделе Параллелизм. |
Счетчики производительности
Среда выполнения надежных субъектов определяет указанные ниже категории счетчиков производительности.
Категория | Description |
---|---|
Субъект Service Fabric | Счетчики, относящиеся к субъектам Azure Service Fabric, например время, затрачиваемое на сохранение состояния субъекта. |
Метод субъекта Service Fabric | Счетчики, относящиеся к методам, реализуемым субъектами Service Fabric, например выявляющие частоту вызова того или иного метода. |
В каждой категории предусмотрен как минимум один счетчик.
Для сбора и просмотра данных счетчиков производительности можно использовать системный монитор Windows , доступный по умолчанию в операционной системе Windows. Диагностика Azure , в свою очередь, позволяет не только собирать данные счетчиков производительности, но и загружать их в таблицы Azure.
Имена экземпляров счетчиков производительности
В кластере, содержащем большое количество служб или секций служб субъектов, находится большое количество экземпляров счетчиков производительности субъектов. Имя экземпляра счетчика производительности помогает определить конкретную секцию и метод субъекта (если применимо), с которыми связан экземпляр.
Категория субъекта Service Fabric
Экземпляры счетчиков в категории Service Fabric Actor
имеют имена в следующем формате:
ServiceFabricPartitionID_ActorsRuntimeInternalID
ServiceFabricPartitionID — это строка идентификатора секции Service Fabric, c которой связан экземпляр счетчика производительности. Это идентификатор GUID, строковое представление которого создается методом Guid.ToString
с использованием описателя формата D.
ActorRuntimeInternalID — это строковое представление 64-разрядного целого числа. Оно создается средой выполнения субъектов Service Fabric для внутреннего использования. В имя экземпляра счетчика производительности оно включается для того, чтобы обеспечить его уникальность и избежать конфликтов с именами других экземпляров счетчиков производительности. Пользователям не следует пытаться интерпретировать эту часть имени экземпляра счетчика производительности.
Пример имени экземпляра счетчика, относящегося к категории Service Fabric Actor
:
2740af29-78aa-44bc-a20b-7e60fb783264_635650083799324046
В приведенном примере 2740af29-78aa-44bc-a20b-7e60fb783264
— это строковое представление идентификатора секции Service Fabric, а 635650083799324046
— 64-разрядный идентификатор, создаваемый для внутреннего использования средой выполнения.
Категория метода субъекта Service Fabric
Экземпляры счетчиков в категории Service Fabric Actor Method
имеют имена в следующем формате:
MethodName_ActorsRuntimeMethodId_ServiceFabricPartitionID_ActorsRuntimeInternalID
MethodName — это имя метода субъекта, с которым связан экземпляр счетчика производительности. Формат имени метода определяется на основе логики в среде выполнения субъектов Fabric, которая органично сочетает удобочитаемость с ограничениями Windows на максимальную длину имен экземпляров счетчиков производительности.
ActorsRuntimeMethodId — это строковое представление 32-разрядного целого числа. Оно создается средой выполнения субъектов Service Fabric для внутреннего использования. В имя экземпляра счетчика производительности оно включается для того, чтобы обеспечить его уникальность и избежать конфликтов с именами других экземпляров счетчиков производительности. Пользователям не следует пытаться интерпретировать эту часть имени экземпляра счетчика производительности.
ServiceFabricPartitionID — это строка идентификатора секции Service Fabric, c которой связан экземпляр счетчика производительности. Это идентификатор GUID, строковое представление которого создается методом Guid.ToString
с использованием описателя формата D.
ActorRuntimeInternalID — это строковое представление 64-разрядного целого числа. Оно создается средой выполнения субъектов Service Fabric для внутреннего использования. В имя экземпляра счетчика производительности оно включается для того, чтобы обеспечить его уникальность и избежать конфликтов с именами других экземпляров счетчиков производительности. Пользователям не следует пытаться интерпретировать эту часть имени экземпляра счетчика производительности.
Пример имени экземпляра счетчика, относящегося к категории Service Fabric Actor Method
:
ivoicemailboxactor.leavemessageasync_2_89383d32-e57e-4a9b-a6ad-57c6792aa521_635650083804480486
В приведенном примере ivoicemailboxactor.leavemessageasync
— это имя метода, 2
— 32-разрядный идентификатор, создаваемый для внутреннего использования средой выполнения, 89383d32-e57e-4a9b-a6ad-57c6792aa521
— это строковое представление идентификатора секции Service Fabric, а 635650083804480486
— 64-разрядный идентификатор, создаваемый для внутреннего использования средой выполнения.
Список событий и счетчиков производительности
События и счетчики производительности методов субъектов
Среда выполнения Reliable Actors генерирует следующие события, связанные с методами субъектов.
Имя события | Идентификатор события | Level | Ключевое слово | Description |
---|---|---|---|---|
ActorMethodStart | 7 | Подробный | 0x2 | Среда выполнения субъектов готовится к вызову метода субъекта. |
ActorMethodStop | 8 | Подробный | 0x2 | Выполнение метода субъекта завершено. Это значит, что асинхронный метод субъекта, вызванный средой выполнения, вернулся и задача, возвращенная методом субъекта, завершена. |
ActorMethodThrewException | 9 | Предупреждение | 0x3 | Во время выполнения метода субъекта возникло исключение либо при асинхронном вызове метода субъекта средой выполнения, либо при выполнении задачи, возвращенной методом субъекта. Это событие указывает на определенные ошибки в коде субъекта, которые необходимо изучить. |
Среда выполнения надежных субъектов публикует следующие счетчики производительности, связанные с выполнением методов субъектов.
Название категории | Имя счетчика | Description |
---|---|---|
Метод субъекта Service Fabric | Вызовов в секунду | Количество вызовов метода службы субъекта в секунду |
Метод субъекта Service Fabric | Среднее время вызова (мс) | Время, затраченное на выполнение метода службы субъекта, в миллисекундах |
Метод субъекта Service Fabric | Исключений в секунду | Количество исключений, выданных методом службы субъекта, в секунду |
События и счетчики производительности для параллелизма
Среда выполнения Reliable Actors генерирует следующие события, связанные с параллелизмом.
Имя события | Идентификатор события | Level | Ключевое слово | Description |
---|---|---|---|---|
ActorMethodCallsWaitingForLock | 12 | Подробный | 0x8 | Это событие записывается в начале каждой новой очереди для субъекта. Оно содержит количество вызовов субъекта, ожидающих получение блокировки субъекта, обеспечивающей "поочередный" параллелизм. |
Среда выполнения надежных субъектов публикует следующие счетчики производительности, связанные с параллелизмом.
Название категории | Имя счетчика | Description |
---|---|---|
Субъект Service Fabric | Количество вызовов, ожидающих блокировку субъекта | Количество вызовов субъекта, ожидающих блокировку субъекта, обеспечивающую поочередный параллелизм. |
Субъект Service Fabric | Среднее время блокировки (мс) | Время (в миллисекундах) до блокировки субъекта, обеспечивающей пошаговый параллелизм |
Субъект Service Fabric | Среднее время (в миллисекундах) удержания блокировки субъекта | Время (в миллисекундах) удержания блокировки субъекта |
События и счетчики производительности управления состоянием субъектов
Среда выполнения Reliable Actors генерирует следующие события, связанные с управлением состояниями субъектов.
Имя события | Идентификатор события | Level | Ключевое слово | Description |
---|---|---|---|---|
ActorSaveStateStart | 10 | Подробный | 0x4 | Среда выполнения субъектов готовится к сохранению состояния субъекта. |
ActorSaveStateStop | 11 | Подробный | 0x4 | Среда выполнения субъектов завершила сохранение состояния субъекта. |
Среда выполнения надежных субъектов публикует следующие счетчики производительности, связанные с управлением состояниями субъектов.
Название категории | Имя счетчика | Description |
---|---|---|
Субъект Service Fabric | Среднее время операции сохранения состояния (мс) | Время, затрачиваемое на сохранение состояния субъекта, в миллисекундах |
Субъект Service Fabric | Среднее время операции загрузки состояния (мс) | Время, затрачиваемое на загрузку состояния субъекта, в миллисекундах |
События, связанные с репликами субъектов
Среда выполнения Reliable Actors создает следующие события, связанные с репликами субъектов.
Имя события | Идентификатор события | Level | Ключевое слово | Description |
---|---|---|---|---|
ReplicaChangeRoleToPrimary | 1 | Информационный | 0x1 | Роль реплики субъекта стала основной. Это означает, что субъекты для этой секции будут создаваться в этой реплике. |
ReplicaChangeRoleFromPrimary | 2 | Информационный | 0x1 | Роль реплики субъекта стала неосновной. Это означает, что в этой реплике больше нельзя создавать субъекты для этой секции. Новые запросы не будут доставляться субъектам, уже созданным в этой реплике. После выполнения всех незавершенных запросов субъекты уничтожаются. |
События активации и деактивации субъектов и счетчики производительности
Среда выполнения Reliable Actors генерирует следующие события, связанные с активацией и деактивацией субъектов.
Имя события | Идентификатор события | Level | Ключевое слово | Description |
---|---|---|---|---|
ActorActivated | 5 | Информационный | 0x1 | Субъект активирован. |
ActorDeactivated | 6 | Информационный | 0x1 | Субъект отключен. |
Среда выполнения Reliable Actors публикует следующие счетчики производительности, связанные с активацией и деактивацией субъектов.
Название категории | Имя счетчика | Description |
---|---|---|
Субъект Service Fabric | Среднее значение OnActivateAsync в миллисекундах | Время, затраченное на выполнение метода OnActivateAsync, в миллисекундах |
Счетчики производительности обработки запросов субъекта
Когда клиент вызывает метод через объект прокси субъекта, это приводит к отправке по сети сообщения запроса в службу субъекта. Служба обрабатывает сообщение запроса и отправляет ответ обратно клиенту. Среда выполнения Reliable Actors публикует следующие счетчики производительности, связанные с обработкой запросов субъекта.
Название категории | Имя счетчика | Description |
---|---|---|
Субъект Service Fabric | Число невыполненных запросов | Число запросов, обрабатываемых в службе |
Субъект Service Fabric | Среднее время запроса (мс) | Время обработки запроса службой (мс) |
Субъект Service Fabric | Среднее время десериализации запроса (мс) | Время десериализации сообщения запроса субъекта при получении его службой (мс) |
Субъект Service Fabric | Среднее время сериализации ответа (мс) | Время сериализации ответного сообщения субъекта в службе до отправки ответа клиенту (мс) |