На выходных я провел быстрый тест производительности SAN с помощью SQLIO (не SQLIOSim).
Первые два теста включали запись случайных блоков размером 64 КБ в файлы размером 1 ГБ на H: \ и K: \.
Вот результаты 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), я получу 39 МБ / с на H: и 55 МБ / с на K :.
Я абсолютно уверен, что в то время на этих дисках не происходило ничего, кроме теста SQLIO. Все остальные тесты SQLIO показывают похожую картину. Количество операций ввода-вывода от PerfCounters примерно в 2,5 раза превышает результат SQLIO.
Но какой из них правильный?
Изменить: ОС - Win 2003 R2
Глупый я!
Как я уже сказал, диски зеркальные. Таким образом, с точки зрения SQLIO это всего лишь один диск, но если я сложу счетчики производительности, я получу записи на оба диска!
Остальная часть оставшегося фактора 1,3 была просто неправильной интерпретацией диаграммы счетчика. Я смотрел на максимум и не принимал во внимание наклон начала и конца, что снижает среднее значение. Эти склоны были довольно крутыми, поэтому мне пришлось увеличивать масштаб до максимума. Было бы лучше, если бы тест длился более одной минуты (размер выборки perfcounter составлял 10 секунд).
Итак, оба правы, и моя вера восстановлена :-)
Пытаться iozone, посмотрите, какой из них ближе всего.