我正在各种虚拟机上收集一些性能数据。 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),并且它似乎也不属于区域设置。
答案 0 :(得分:2)
%磁盘时间仅是平均磁盘队列长度乘以100.有关更多详细信息,请参阅this文章。
“%Disk Time”计数器只不过是“平均值”。磁盘队列长度“计数器乘以100.它是以不同比例显示的相同值。 如果平均。磁盘队列长度等于1,%Disk Time将等于100.如果是平均值。磁盘队列长度为0.37,然后%磁盘时间为37。 这就是为什么你可以看到%Disk Time大于100%的原因,只需要Avg。磁盘队列长度值大于1.