数据收集器集

时间:2015-08-04 08:00:18

标签: c# .net-4.0 perfmon

我正在各种虚拟机上收集一些性能数据。 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äischeSommerzeit)( - 120)”“\ BR-DOMAIN \LogischerDatenträ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äischeSommerzeit)( - 120)”“\ BR-SQL-03 \LogischerDatenträ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 个答案:

答案 0 :(得分:2)

%磁盘时间仅是平均磁盘队列长度乘以100.有关更多详细信息,请参阅this文章。

  

“%Disk Time”计数器只不过是“平均值”。磁盘队列长度“计数器乘以100.它是以不同比例显示的相同值。   如果平均。磁盘队列长度等于1,%Disk Time将等于100.如果是平均值。磁盘队列长度为0.37,然后%磁盘时间为37。   这就是为什么你可以看到%Disk Time大于100%的原因,只需要Avg。磁盘队列长度值大于1.