Я провел серию нагрузочных тестов на выделенной базе данных SAN из опытного кластера (Dell R710 подключается к выделенному RAID10 SAN через 2-гигабитные соединения Ethernet), и я не уверен, правильно ли я интерпретирую данные.
Для справки вот необработанные данные.
Тест 1
sqlio v1.5.SG
using system counter for latency timings, 2727587 counts per second
parameter file used: paramD100.txt
file d:\tmp\testfile.dat with 2 threads (0-1) using mask 0x0 (0)
2 threads reading for 120 secs from file d:\tmp\testfile.dat
using 64KB random IOs
enabling multiple I/Os per thread with 2 outstanding
buffering set to use hardware disk cache (but not file cache)
using specified size: 20480 MB for file: d:\tmp\testfile.dat
initialization done
CUMULATIVE DATA:
throughput metrics:
IOs/sec: 372.12
MBs/sec: 23.25
latency metrics:
Min_Latency(ms): 1
Avg_Latency(ms): 10
Max_Latency(ms): 159
Тест 2
sqlio v1.5.SG
using system counter for latency timings, 2727587 counts per second
parameter file used: paramD100.txt
file d:\tmp\testfile.dat with 2 threads (0-1) using mask 0x0 (0)
2 threads reading for 120 secs from file d:\tmp\testfile.dat
using 64KB random IOs
enabling multiple I/Os per thread with 2 outstanding
buffering set to use hardware disk cache (but not file cache)
using specified size: 20480 MB for file: d:\tmp\testfile.dat
initialization done
CUMULATIVE DATA:
throughput metrics:
IOs/sec: 358.26
MBs/sec: 22.39
latency metrics:
Min_Latency(ms): 1
Avg_Latency(ms): 10
Max_Latency(ms): 169
Чтобы уменьшить разницу между результатами тестов, эти тесты проводились в 11:30 в течение 2 дней подряд.
Учитывая этот образец нагрузки, следует ли мне ожидать такой низкой пропускной способности MBPS, как я получаю, или я правильно интерпретирую это и считаю, что есть проблема либо с сетью, либо с SAN (или со всем)?
Спасибо.
Чтобы уточнить детали, установка выглядит следующим образом.
Dell R710 с 2 x Broadcom 5709 (с возможностью разгрузки iSCSI и TOE с использованием программного обеспечения Dell Multipathing IO). И да, я видел сообщение "Broadcom - die mutha": S
2 Juniper EX4200-48T в качестве единого виртуального коммутатора
Одно соединение от каждой сетевой карты Broadcom в каждом кластере подключается к одному коммутатору. И есть 2 гигабитных соединения от каждого коммутатора к SAN.
Dell EqualLogic PS6000E iSCSI SAN, укомплектованный 16 (14 + 2 горячей замены) накопителями емкостью 2 ТБ, 7200 об / мин
Насколько я знаю и как я думаю, это должно работать, теоретически мы должны получить 200 Мбит / с, чего, как вы видите, нет.
Чтобы дать немного больше контекста, вот график, показывающий средние Мбит / с для 4 отдельных прогонов.
Для справки, ось Y - это MBPS, а ось X - это тип ввода-вывода (случайный или последовательный), ожидающие операции ввода-вывода и операция (чтение против записи).
Изображения отключены, поэтому вот ссылка - График, показывающий средние результаты для 4 запусков SQLIO
Здесь меня касаются 2 вещи -
Является ли это примерно ожидаемым шаблоном для такого типа установки? И что еще здесь выглядит неуместным или неправильным?
Поскольку вы не упоминаете, что такое SAN, я предполагаю, что это общий iSCSI.
Какие в нем диски? Какие скорости? Какой кэш, если он есть, присутствует в RAID-10?
Я согласен с тем, что 22 МБ / с - это ужасно медленно, но если это всего лишь 4 диска SATA в RAID-10, 350 с лишним IOPS будет примерно правильным.
Нет, вы правы, это совсем не здорово - вы не упоминаете схему SAN, но, учитывая, что это R10, вы можете представить наихудший сценарий как минимум 4 x дешевых дисков SATA на одном из этих 1 Гбит / с ссылки (я сомневаюсь, что оба будут использоваться одновременно из-за согласованности MAC), даже в этом случае я бы ожидал как минимум удвоить количество случайных Мбит / с чтения, которое вы видите, и это наихудший случай. Здесь что-то не так.
теоретически мы должны получить 200 Мбит / с
В твоих мечтах. при не случайном вводе-выводе, когда msot время тратится на прыжки из сектора в сектор. Но со случайным io и несколькими дисками для медленных конечных пользователей это звучит примерно правильно - добро пожаловать в мир, где вы получаете около 300 операций ввода-вывода в секунду для пары дисков, а SSD дает вам 60 000. Теперь, возможно, вы понимаете, что SSD используется в качестве SAN для случайного ввода-вывода, и число МБ / с, которое конечные пользователи любят osm uch, не имеет отношения к серверным модулям хранилища баз данных.
Вы тоже саботаж это:
включение нескольких операций ввода-вывода на поток с 2 невыполненными
Хорошо, учитывая, что SATA NCQ (Native Command Queuing) разумно переупорядочивает до 32 ожидающих запросов на диске, отправка только 2 одновременно является неоптимальной. Вы получаете 2x2 = 4 выдающихся, но можете обрабатывать 32 на диск.
Тахт сказал, что в конце вам понадобятся (а) более быстрые диски (б) их больше, чтобы получить более высокие показатели IOPS. Или приличный кеш второго уровня (контроллеры рейдов Adaptec могут использовать SSD в качестве кеша для чтения и записи).