2015-08-04 7 views
9

Я собираю некоторые данные о производительности на различных виртуальных машинах. DataCollectorSet инициализируется следующим образом:Странные значения в наборе сбора данных

set.Subdirectory = set.name; 
set.SubdirectoryFormat = AutoPathFormat.plaYearMonthDay; 

var schedule = set.Schedules.CreateSchedule(); 
schedule.Days = WeekDays.plaEveryday; 
schedule.StartDate = DateTime.Now; 

set.Schedules.Add(schedule); 

set.Commit(set.name, null, CommitMode.plaCreateNew); 

Затем добавить коллектор:

var collector = (IPerformanceCounterDataCollector)set.DataCollectors.CreateDataCollector(DataCollectorType.plaPerformanceCounter); 

collector.FileName = counterPath.Replace("\\", "_"); 
collector.LogAppend = true; 
collector.FileNameFormat = AutoPathFormat.plaYearMonthDay; 
collector.SampleInterval = 60u; 
collector.SegmentMaxRecords = 1440; 
collector.LogFileFormat = FileFormat.plaTabSeparated; 

set.DataCollectors.Add(collector); 

var counters = new string[1]; 
counters[0] = counterPath; 
collector.PerformanceCounters = counters; 

set.Commit(set.name, null, CommitMode.plaCreateOrModify); 

Когда я запускаю это с \LogicalDisk(_Total)\% Disk Time, на десятках машин, я получаю значения, которые выглядят как проценты, как и ожидалось - они в основном составляют от 0,00 до 5,00, но иногда, во время высокой активности, переходите к двойным цифрам.

На одной машине, однако, все значения находятся выше 100. Кажется, что все они находятся в пределах от 120 до 170, независимо от того, является ли машина занятой или нет. Между тем, при запуске perfmon вручную с тем же счетчиком отображаются предположительно правильные значения - он приближается к 100% при занятости и в остальном остается ниже 10%.

Вот несколько первых выходных строк из машины с ожидаемыми результатами:

"(PDH-TSV 4,0) (Mitteleuropäische Sommerzeit) (- 120)" «\ BR-DOMAIN \ Logischer Datenträger (_Total) \ Zeit (%) " " 08/04/2015 01: 00: 18.425 "" " " 08/04/2015 01: 01: 18.407 "" 2.4181960253316448 " " 08/04/2015 01: 02: 18.406 "" 0.24834083322649675 " "08/04/2015 01: 03: 18,404" "+0,19900577879613995"

на предположительно неправильной один, вместо этого, они выглядят следующим образом:

"(PDH-TSV 4.0) (- Mitteleuropäische Sommerzeit) (- 120)" "\ BR-SQL-03 \ Logischer Datenträger (_Total) \ Zeit (%)" "08/04/2015 09: 22: 07.685" "" "08/04/2015 09: 23: 07.686" "138.63521370727958" "08/04/2015 09: 24: 07.679" "141.86027406369067" "08/04/2015 09: 25: 07.679" "124.80150934108948"

Машины, которые работают как ожидалось, работают на различных операционных системах (2008 R2, 2012, 2012 R2) на немецком и английском языках, и, похоже, это не похоже на региональные настройки.

+1

[Этот вопрос] (http://serverfault.com/q/143208) может дать нам подсказку о том, почему счетчики производительности могут превышать 100%. – dasblinkenlight

ответ

2

% Время на диске - это просто средняя длина очереди на диск, умноженная на 100. Более подробную информацию см. В статье this.

Счетчик "% Disk Time" - это не что иное, как "Сред. Disk Queue Length ", умноженное на 100. Это то же значение отображается в другом масштабе. Если Сред. Длина очереди диска равна 1,% Disk Time будет равно 100. Если Avg. Длина очереди диска равна 0,37, тогда% Disk Time будет равно 37. Именно поэтому вы можете видеть, что% Disk Time больше 100%, все, что требуется, это Avg. Значение длины очереди диска больше 1.

+1

Также спасибо за то, что вы меня перевели на google-translate 'Logischer Datenträger (_Total) \ Zeit (%)', чтобы убедиться :) :) –

+0

О, извините. Я забыл перевести все на английский. ;) –