ХОРОШО. У нас есть несколько серверов PowerEdge Rack, которые мы используем для MSSQL. У меня есть один сервер с 3 массивами RAID 1, которые являются SATA. Я могу запустить SQLIO и приблизиться к 6000 IOPS. Как это возможно хотя бы отдаленно?
C:\Program Files (x86)\SQLIO>sqlio.exe -kW -s300 -fsequential -b8 -Fparam.txt
sqlio v1.5.SG
parameter file used: param.txt
file E:\testfile.dat with 2 threads (0-1) using mask 0x0 (0)
2 threads writing for 300 secs to file E:\testfile.dat
using 8KB sequential IOs
size of file E:\testfile.dat needs to be: 10737418240 bytes
current file size: 0 bytes
need to expand by: 10737418240 bytes
expanding E:\testfile.dat ... done.
using specified size: 10240 MB for file: E:\testfile.dat
initialization done
CUMULATIVE DATA:
throughput metrics:
IOs/sec: 5963.58
MBs/sec: 46.59
Это просто использование PERC с 512 МБ кеш-памяти. Я не понимаю, как это возможно физически.
Обязательно протестируйте случайный и последовательный читает и пишет.
Последовательные записи не редкость (запись журнала транзакций, дампы для резервных копий), но чтение почти всегда будет случайным, потому что если бы SQL мог предсказать, что вам нужен этот фрагмент данных, он уже был бы в ОЗУ, а чтение обычно оказывает более заметное влияние. для пользователей-людей. Таким образом, в зависимости от характеристик БД вашего приложения один может быть более точным, чем другой.
Другая вещь, о которой следует помнить, - это то, что вы можете повысить производительность чтения с помощью большего объема ОЗУ или более быстрого / большего кеша адаптера RAID, но если вам нужно улучшить производительность записи, у вас практически нет альтернативы покупке большего количества (или более быстрых) дисков.