Практическое руководство. Создание пользовательских счетчиков производительности
Обновлен: Ноябрь 2007
При создании нового счетчика прежде всего необходимо создать категорию, а потом уже указать один или несколько относящихся к ней счетчиков. Это можно сделать одним из следующих способов:
Для создания одного или нескольких счетчиков в режиме разработки можно использовать Обозреватель серверов.
Можно использовать класс CounterCreationData для создания одного или нескольких счетчиков программными средствами, а затем добавить их в коллекцию типа CounterCreationDataCollection и передать коллекцию как параметр специальной формы метода Create.
Один счетчик в новой категории можно создать с помощью метода Create класса PerformanceCounterCategory. Дополнительные сведения см. в разделе Практическое руководство. Создание категорий счетчиков производительности.
Есть два особых момента, которые следует иметь в виду при создании счетчиков и категорий. Во-первых, создание пользовательских категорий и счетчиков на удаленных компьютерах невозможно. Во-вторых, взаимодействие с пользовательскими счетчиками и категориями ограничено режимом "только для чтения", если явно не задано иное. В режиме "только для чтения" невозможно увеличить или уменьшить значения счетчиков или установить для них необработанное значение или значения другого типа. Для установки пользовательского счетчика в режим записи можно использовать свойство ReadOnly.
Следует учитывать разницу между созданием счетчика и созданием экземпляра компонента PerformanceCounter. При создании счетчика в операционной системе Windows создается новая категория и связанные с ней счетчики, в отличие от создания компонента в проекте или приложении. При создании экземпляра компонента PerformanceCounter внутри проекта Visual Studio создается компонент, который ссылается на внешний счетчик.
Примечание. |
---|
Существуют ограничения безопасности, влияющие на возможность использования счетчиков производительности. Дополнительные сведения см. в разделе Знакомство со способами выявления пороговых значений производительности. |
Примечание о безопасности. |
---|
При создании счетчика производительности имейте в виду, что такой ресурс уже может существовать. Другой процесс (возможно, вредоносный) уже мог создать ресурс и получить к нему доступ. При записи данных в счетчик производительности они становятся доступными для другого процесса. |
Примечание. |
---|
В Microsoft Windows NT версии 4.0 класс PerformanceCounter поддерживается не полностью. Данные из системных счетчиков доступны для чтения, но пользовательские счетчики нельзя создавать, удалять, а также нельзя записывать в них данные. |
Примечание. |
---|
На вашем компьютере названия некоторых элементов интерфейса пользователя Visual Studio или их расположение могут отличаться от указанных в нижеследующих инструкциях. Это зависит от имеющегося выпуска Visual Studio и используемых параметров. Дополнительные сведения см. в разделе Параметры Visual Studio. |
Создание новой категории и пользовательского счетчика производительности в режиме разработки
Откройте Обозреватель серверов и разверните узел сервера, который требуется просмотреть.
Примечание. Если этого сервера нет в списке, его нужно добавить. Дополнительные сведения см. в разделе Практическое руководство. Подключение и инициализация обозревателя серверов/обозревателя баз данных.
Щелкните правой кнопкой мыши узел Счетчики производительности и выберите команду Создать новую категорию.
Откроется диалоговое окно Построитель счетчиков производительности.
Примечание. Для получения доступа к счетчикам производительности необходимо быть членом группы безопасности, имеющей доступ к счетчикам производительности (например, группы Пользователи монитора производительности). Кроме того, при попытке выполнить действие, требующее расширенных полномочий, в Windows Vista могут выводиться запросы даже в случае использования административных прав. Дополнительные сведения см. в разделе Windows Vista и Visual Studio.
Введите имя и описание создаваемой категории.
Примечание. Указание имени уже существующей категории приведет к ошибке. Для перезаписи существующей категории счетчика необходимо сначала удалить категорию с помощью метода Delete, а затем добавить новую категорию.
Во фрейме Построитель списка счетчиков выполните следующие действия:
Нажмите кнопку Создать.
В окне Счетчик задайте имя создаваемого внутри категории счетчика.
Выберите тип счетчика в раскрывающемся списке Тип.
Введите описание счетчика.
Повторите шаг 4 для создания каждого дополнительного счетчика в данной категории.
Совет. Перед закрытием диалогового окна в списке Счетчики можно выбрать любые счетчики и изменить их значения или удалить их.
Примечание. По умолчанию созданные в диалоговом окне счетчики и категории обладают возможностями чтения и записи, однако взаимодействие с ними с помощью экземпляра компонента PerformanceCounter ограничено режимом "только для чтения", если не указано иное.
Создание новой категории и набора счетчиков производительности программными средствами
Создайте коллекцию типа CounterCreationDataCollection.
Создайте необходимые счетчики как объекты типа CounterCreationData и задайте для них нужные свойства.
Добавьте в коллекцию объекты CounterCreationData, вызвав метод Add коллекции.
Вызовите метод Create класса PerformanceCounterCategory и передайте ему коллекцию.
В следующем примере показано, как создать серию счетчиков и передать их в категорию в момент ее создания:
' Create a collection of type CounterCreationDataCollection. Dim CounterDatas As New CounterCreationDataCollection() ' Create the counters and set their properties. Dim cdCounter1 As New CounterCreationData() Dim cdCounter2 As New CounterCreationData() cdCounter1.CounterName = "MyCounter1" cdCounter1.CounterHelp = "help string" cdCounter1.CounterType = PerformanceCounterType.NumberOfItems64 cdCounter2.CounterName = "MyCounter2" cdCounter2.CounterHelp = "help string 2" cdCounter2.CounterType = PerformanceCounterType.NumberOfItems64 ' Add both counters to the collection. CounterDatas.Add(cdCounter1) CounterDatas.Add(cdCounter2) ' Create the category and pass the collection to it. PerformanceCounterCategory.Create("Multi Counter Category", _ "Category help", PerformanceCounterCategoryType.SingleInstance, _ CounterDatas)
// Create a collection of type CounterCreationDataCollection. System.Diagnostics.CounterCreationDataCollection CounterDatas = new System.Diagnostics.CounterCreationDataCollection(); // Create the counters and set their properties. System.Diagnostics.CounterCreationData cdCounter1 = new System.Diagnostics.CounterCreationData(); System.Diagnostics.CounterCreationData cdCounter2 = new System.Diagnostics.CounterCreationData(); cdCounter1.CounterName = "Counter1"; cdCounter1.CounterHelp = "help string1"; cdCounter1.CounterType = System.Diagnostics.PerformanceCounterType.NumberOfItems64; cdCounter2.CounterName = "Counter2"; cdCounter2.CounterHelp = "help string 2"; cdCounter2.CounterType = System.Diagnostics.PerformanceCounterType.NumberOfItems64; // Add both counters to the collection. CounterDatas.Add(cdCounter1); CounterDatas.Add(cdCounter2); // Create the category and pass the collection to it. System.Diagnostics.PerformanceCounterCategory.Create( "Multi Counter Category", "Category help", PerformanceCounterCategoryType.SingleInstance, CounterDatas);
См. также
Задачи
Практическое руководство. Создание категорий счетчиков производительности
Основные понятия
Управление категорией и счетчиком
Ссылки
Практическое руководство. Подключение и инициализация обозревателя серверов/обозревателя баз данных