Узел Perfomance Counters в окне Server Explorer в Visual Studio

103

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

Узел Performance Counters в дереве Server Explorer, продемонстрированный в раскрытом виде на рисунке ниже, имеет две основные функции. Во-первых, он позволяет увидеть и извлечь информацию об инсталлированных счетчиках, создавать новые счетчики производительности, а также редактировать и удалять существующие. Как показано на рисунке, под узлом Performance Counters расположен список категорий, а еще ниже - список счетчиков.

Узел Performance Counters окна Server Explorer

Для того чтобы увидеть узел Performance Counters в окне Server Explorer, необходимо запустить систему Visual Studio, имея права администратора.

Для того чтобы отредактировать категорию или счетчик, следует выбрать команду Edit Category из контекстного меню, которое появляется после щелчка правой кнопкой мыши на имени категории. Для того чтобы добавить новую категорию и связанные с ней счетчики, надо щелкнуть правой кнопкой на узле Performance Counters и выбрать команду Create New Category в контекстном меню. Обе эти операции используют диалоговое окно, показанное ниже. Оно демонстрирует что пользователь создал новую категорию счетчиков, которая будет использоваться для отслеживания событии, связанных с открытием и закрытием формы.

Создание новой категории счетчиков производительности

Во-вторых, раздел Performance Counters обеспечивает простой доступ к счетчикам производительности из кода. Перетащив категорию счетчиков производительности на форму, разработчик получает возможность читать информацию из счетчика производительности и записывать информацию в него. Продолжим пример, перетащив на новую форму типа Windows Form новые счетчики производительности My Application, Form Open и Form Close. Добавим также поля ввода и кнопку, с помощью которых будем выводить значения счетчиков производительности. И наконец, переименуем счетчики производительности, чтобы они имели понятные имена. В результате получим форму, показанную на рисунке ниже:

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

Среди свойств выбранного счетчика производительности можно увидеть категорию, к которой он относится: в данном случае счетчик Form Close был выбран из категории My Application. Отметим также свойство MachineName, которое содержит информацию о компьютере, от которого счетчик получает информацию, и свойство Readonly, которое должно быть установлено равным False, если счетчик требуется обновить. (По умолчанию свойство Readonly установлено равным True.) Для того чтобы закончить создание формы, добавим на нее обработчик для кнопки "Получить значения счетчиков":

this.textBox1.Text = this.perfFormOpen.RawValue.ToString();
this.textBox2.Text = this.perfFormClose.RawValue.ToString();

Пользователь может добавить в приложение код, обновляющий счетчики производительности. Например, можно добавить следующий код для обработчиков события Form Load:

this.perfFormOpen.Increment();

Во время перетаскивания счетчика производительности на форму можно заметить его интеллектуальный дескриптор (маленькая стрелка, которая появляется в правом верхнем углу при выборе элемента управления), содержащий один элемент: Add Installer. Когда пользователь выбирает элемент управления, имя соответствующей операции появляется в нижней части окна Properties. Щелкнув на имени операции в любом из этих мест, разработчик может добавить в свое решение класс Installer, позволяющий инсталлировать счетчик производительности в ходе установки приложения. Разумеется, для того чтобы иметь возможность вызывать объект класса Installer, сборка, которой он принадлежит, должна быть добавлена как пользовательская операция в проект развертывания.

До появления версии Visual Studio 2008 разработчик должен был вручную модифицировать инсталлятор, чтобы создать несколько счетчиков производительности. В текущей версии можно просто выбрать каждый из добавляемых счетчиков производительности и щелкнуть на компоненте Add Installer. Система Visual Studio 2013 вернет разработчика к первому созданному инсталлятору, и в коллекцию Counters компонента PerformanceCounterInstaller автоматически будет добавлен второй счетчик:

Добавление второго счетчика производительности на форму

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

Пройди тесты
Лучший чат для C# программистов