Поделиться через


Отображение данных о производительности

Большинство счетчиков требуют двух примеров значений для вычисления отображаемого значения. Формула для каждого счетчика определяет, требуется ли для счетчика два образца. Список счетчиков и их формул см. в разделе "Типы счетчиков" комплекта развертывания Windows Server 2003.

Сбор данных о производительности показывает, как получить примеры данных. После получения примеров обычно вызывается PdhGetFormattedCounterValue для вычисления отображаемого значения.

Если необходимо масштабировать значение счетчика вверх или вниз, чтобы отобразить значение, вызовите функцию PdhSetCounterScaleFactor перед вызовом PdhGetFormattedCounterValue. Значения счетчиков можно масштабировать, используя степень десяти от -7 до 7.

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

Вы также можете использовать PdhCalculateCounterFromRawValue и функции PdhFormatFromRawValue для вычисления отображаемого значения. Чтобы использовать эти функции, необходимо самостоятельно сохранить собранный образец после каждого вызова PdhCollectQueryData. Чтобы получить пример, вызовите функцию PdhGetRawCounterValue или PdhGetRawCounterArray. Для значений счетчиков на основе времени вызовите PdhGetCounterTimeBase перед PdhFormatFromRawValue, чтобы получить базу времени счетчика.

Если вы выполняете вычисления с помощью необработанных данных, всегда проверьте CStatus элемент структуры PDH_RAW_COUNTER перед использованием образца. Образец недействителен, если значение CStatus не соответствует PDH_CSTATUS_NEW_DATA или PDH_CSTATUS_VALID_DATA.

Отображение статистики для счетчика

Если вы хотите вычислить минимальное, максимальное и среднее значения счетчика, вызовите функцию PdhComputeCounterStatistics. При сборе образцов сохраните структуры PDH_RAW_COUNTER в массиве, который передается в PdhComputeCounterStatistics. Функция возвращает статистические значения в структуре PDH_STATISTICS.

Эту функцию также можно использовать для сжатия файла журнала. Например, прочитайте десять записей из файла журнала, вызовите PdhComputeCounterStatistics для вычисления среднего значения, а затем запишите это среднее значение в выходной файл журнала.