Тестирование производительности облачной службы

Примечание.

Эта статья относится к Azure Облачные службы (классической), которая теперь устарела для новых клиентов и будет прекращена 31 августа 2024 года. Существующие службы, созданные с помощью этой технологии, по-прежнему поддерживаются с помощью Azure Облачные службы (расширенная поддержка). Для новой разработки рекомендуется использовать более новый тип службы, предназначенный для конкретной цели, например службу приложение Azure, Функции Azure или приложения контейнеров Azure. Последний список доступных служб см . в каталоге продуктов Azure.

Производительность облачной службы можно проверить следующими способами.

Необходимые компоненты

Выбор метода тестирования производительности

Воспользуйтесь системой диагностики Azure для сбора:

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

Воспользуйтесь профилировщиком Visual Studio для:

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

С помощью профилировщика можно собирать данные при запуске облачной службы локально или в Azure.

Сбор данных профилирования локально позволит:

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

Сбор данных профилирования в Azure позволит:

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

Нагрузка для тестирования облачных служб обычно моделируется для обычной или нештатной ситуации.

Профилирование облачной службы в Azure

При публикации облачной службы из Visual Studio можно выполнить профилирование службы и задать параметры профилирования, которые позволят получить необходимую вам информацию. Сеанс профилирования запускается для каждого экземпляра роли. Дополнительные сведения о публикации службы из Visual Studio см. в разделе Публикация в облачной службе Azure из Visual Studio.

Чтобы узнать больше о профилировании производительности в Visual Studio, изучите статьи Руководство по профилированию производительности для начинающих и Использование средств профилирования.

Примечание.

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

Методы сбора данных профилировщика

Для профилирования можно использовать различные методы сбора данных в зависимости от того, какую статистику по производительности необходимо получить:

  • Выборка из ЦП — этот метод осуществляет сбор статистики приложения, которую удобно использовать для первоначального анализа проблем использования ЦП. Большинство исследований производительности рекомендуется начинать с выборки из ЦП. Сбор данных выборки ЦП не оказывает существенного влияния на профилируемое приложение.
  • Инструментирование — этот метод осуществляет сбор подробных временных данных, которые удобно использовать для целенаправленного анализа и для анализа проблем производительности ввода/вывода. Метод инструментирования регистрирует каждый вход и выход из функции и каждый вызов функции для всех функций модуля во время профилирования. Этот метод удобен для сбора подробных временных данных для заданного фрагмента кода и для оценки влияния операций ввода/вывода на производительность приложения. На компьютерах, работающих под управлением 32-разрядных операционных систем, этот метод недоступен. Этот метод доступен только при запуске облачной службы в Azure, а не локально в эмуляторе вычислений.
  • Выделение памяти .NET — этот метод осуществляет сбор данных о выделении памяти .NET Framework с помощью метода профилирования с выборкой. Собранные данные включают количество и размер выделенных объектов.
  • Параллелизм . Этот метод собирает данные о состязании ресурсов, а также данные о выполнении процессов и потоков, полезные для анализа многопоточных и многопроцессных приложений. Метод параллелизма собирает данные для каждого события, которое блокирует выполнение кода, например когда поток ожидает освобождения доступа к заблокированному ресурсу приложения. Этот метод полезен для анализа многопоточных приложений.
  • Вы также можете включить профилирование взаимодействия уровня, которое предоставляет дополнительные сведения о времени выполнения синхронных вызовов ADO.NET в функциях многоуровневых приложений, взаимодействующих с одной или несколькими базами данных. Данные о межуровневом взаимодействии можно получить с помощью любого из методов профилирования. Дополнительные сведения о профилировании межуровневого взаимодействия см. в разделе Представление "Взаимодействие между уровнями".

Настройка параметров профилирования

На рисунке ниже показано, как настроить параметры профилирования в диалоговом окне "Публикация приложения Azure".

Настроить параметры профилирования

Примечание.

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

Для настройки параметров профилирования

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

  2. В диалоговом окне "Публикация приложение Azure" выберите вкладку "Дополнительно Параметры".

  3. Чтобы включить профилирование, выберите поле "Включить профилирование" проверка box.

  4. Чтобы настроить параметры профилирования, выберите гиперссылку Параметры . Откроется диалоговое окно "Параметры профилирования".

  5. С помощью переключателей из раздела Какой способ профилирования вы хотели бы использовать выберите нужный тип профилирования.

  6. Чтобы собрать данные профилирования взаимодействия уровня, выберите поле "Включить профилирование взаимодействия уровня" проверка box.

  7. Чтобы сохранить настройки, нажмите кнопку ОК .

    Во время публикации приложения эти параметры будут использоваться для создания сеанса профилирования для каждой роли.

Просмотр отчетов профилирования

Сеанс профилирования создается для каждого экземпляра роли в облачной службе. Для просмотра отчетов профилирования для каждой сессии в Visual Studio откройте окно обозревателя сервера и выберите вычислительный узел Azure, после чего выберите экземпляр роли. Затем вы сможете просмотреть отчет о профилировании, как показано на следующем рисунке.

Просмотр отчета профилирования Azure

Для просмотра отчетов профилирования

  1. Чтобы открыть окно обозревателя сервера в Visual Studio, выберите меню "Представление", затем "Обозреватель сервера".

  2. Выберите вычислительный узел Azure и затем выберите узел развертывания Azure для облачной службы, которую вы выбрали для профилирования при публикации из Visual Studio.

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

    Отчет, .vsp файл, теперь скачан из Azure, а состояние скачивания отображается в журнале действий Azure. Когда скачивание завершится, отчет профилирования отображается на вкладке в редакторе visual Studio с именем <name><instance number><identifier.vsp.> Будут показаны сводные данные отчета.

  4. Для отображения различных представлений отчета выберите необходимый тип представления в списке "Текущее представление". Дополнительные сведения см. в статье Представления отчетов средств профилирования.

Отладка облачных служб

Публикация в облачной службе Azure из Visual Studio