Perfmon——为什么“% Disk Time”计数器的值会大于100%?
最近在使用perfmon做性能测试时发现,“% Disk Time”计数器的值总是会大于100%。如下图所示。
perfmon上对“% Disk Time”的中文描述为:
% Disk Time 指所选磁盘驱动器忙于为读或写入请求提供服务所用的时间的百分比。
既然是百分比,大于100是何意思?我百思不得其解。于是我找到了微软的官方解答:
翻译过来就是说,
“% Disk Time”计数器只不过是“Avg. Disk Queue Length”计数器乘以100,它是以不同比例显示的相同值。
如果“Avg. Disk Queue Length”为1,“% Disk Time”将为100;
如果“Avg. Disk Queue Length”为0.37,“% Disk Time”将为37。
这就是为什么你会看到“% Disk Time”大于100%的原因:只需要“Avg. Disk Queue Length”大于1。
相同的逻辑适用于“% Disk Read Time”和“% Disk Write Time”。 他们的数据分别来自“Avg. Disk Read Queue Length”和“Avg. Disk Write Queue Length”。
PS:perfmon上对“Avg. Disk Queue Length”的中文描述为指读取和写入请求(为所选磁盘在实例间隔中列队的)的平均数。
这么说来,“% Disk Time”和“Avg. Disk Queue Length”其实是一个东西,都是指读取和写入请求(为所选磁盘在实例间隔中列队的)的平均数(个人感觉根本没必要弄2个功能相同的计数器)。
再回头看看perfmon上对“% Disk Time”的中文描述,个人感觉有很大的问题,完全在误导用户。