我周末使用 SQLIO(不是 SQLIOSim)进行了快速 SAN 性能测试。
前两个测试涉及将随机 64k 块写入 H:\ 和 K:\ 上的 1 GB 文件
以下是 SQLIO 的结果:
sqlio v1.5.SG
using system counter for latency timings, -1794967296 counts per second
1 thread writing for 60 secs to file H:\sqlio_test.dat
using 64KB random IOs
enabling multiple I/Os per thread with 1 outstanding
buffering set to not use file nor disk caches (as is SQL Server)
using current size: 1000 MB for file: H:\sqlio_test.dat
initialization done
CUMULATIVE DATA:
throughput metrics:
IOs/sec: 220.51
MBs/sec: 13.78
latency metrics: Min_Latency(ms): 2 Avg_Latency(ms): 4 Max_Latency(ms): 30
histogram:
ms: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24+
%: 0 0 6 0 84 8 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
sqlio v1.5.SG
using system counter for latency timings, -1794967296 counts per second
1 thread writing for 60 secs to file K:\sqlio_test.dat
using 64KB random IOs
enabling multiple I/Os per thread with 1 outstanding
buffering set to not use file nor disk caches (as is SQL Server)
using current size: 1000 MB for file: K:\sqlio_test.dat
initialization done
CUMULATIVE DATA:
throughput metrics:
IOs/sec: 331.81
MBs/sec: 20.73
latency metrics: Min_Latency(ms): 2 Avg_Latency(ms): 2 Max_Latency(ms): 107
histogram:
ms: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24+
%: 0 0 59 40 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
到目前为止一切顺利。但是,如果我查看这些驱动器(它们都是 Hitachi OpenV SAN 上的镜像“磁盘”)的性能计数器,我在 H: 上得到 39 MB/s,在 K: 上得到 55 MB/s。
我完全确信当时这些驱动器上除了 SQLIO 测试之外没有发生任何其他事情。所有其他 SQLIO 测试都显示出类似的模式。PerfCounters 的 I/O 大约比 SQLIO 结果高 2.5 倍。
但哪一个是正确的呢?
编辑:操作系统是 Win 2003 R2
答案1
尝试碘,看看哪一个最接近。
答案2
愚蠢的我!
正如我所说,磁盘是镜像的。因此从 SQLIO 的角度来看,它只是一个磁盘,但如果我将 perfcounters 加起来,我就会得到两个磁盘上的写入!
剩下的 1.3 因子只是对 perfcounter 图表的误解。我查看了最大值,没有考虑开始和结束斜率,这会降低平均值。这些斜率非常陡峭,所以我不得不放大到最大细节。如果测试运行超过一分钟(perfcounter 样本大小为 10 秒),效果会更好。
所以,两者都是正确的,我的信心又恢复了:-)