Диагностика и мониторинг производительности в 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 Среднее время сериализации ответа (мс) Время сериализации ответного сообщения субъекта в службе до отправки ответа клиенту (мс)

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