Назад | Перейти на главную страницу

Интерпретация результатов теста SQLIO

Я провел серию нагрузочных тестов на выделенной базе данных 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 (или со всем)?

Спасибо.

Обновление # 1

Чтобы уточнить детали, установка выглядит следующим образом.

Кластер производственной БД

Dell R710 с 2 x Broadcom 5709 (с возможностью разгрузки iSCSI и TOE с использованием программного обеспечения Dell Multipathing IO). И да, я видел сообщение "Broadcom - die mutha": S

Переключатель

2 Juniper EX4200-48T в качестве единого виртуального коммутатора

Одно соединение от каждой сетевой карты Broadcom в каждом кластере подключается к одному коммутатору. И есть 2 гигабитных соединения от каждого коммутатора к SAN.

SAN

Dell EqualLogic PS6000E iSCSI SAN, укомплектованный 16 (14 + 2 горячей замены) накопителями емкостью 2 ТБ, 7200 об / мин

Насколько я знаю и как я думаю, это должно работать, теоретически мы должны получить 200 Мбит / с, чего, как вы видите, нет.

Обновление 2

Чтобы дать немного больше контекста, вот график, показывающий средние Мбит / с для 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 в качестве кеша для чтения и записи).