Я столкнулся с проблемой при настройке SAN. Я тестирую 24 точки монтирования, которые являются RAID - 5 на EMC DMX с SQLIO. Хост, на котором я тестирую, имеет 256 ГБ ОЗУ и 32 ядра.
Я использую в командной строке файл Param, который выглядит так:
M:\ASRS\ASRS_SQLData01A\testfile.dat 8 0x0 6000
M:\ASRS\ASRS_SQLData02\testfile.dat 8 0x0 6000
M:\ASRS\ASRS_SQLData03\testfile.dat 8 0x0 6000
Пример командной строки выглядит так:
call sqlio -kR -s60 -fsequential -o8 -b64 -LS -Fparam.txt
У меня такой вопрос:
Когда я тестирую только одну точку монтирования, я вижу 850 МБ / с и 14 тыс. Операций ввода-вывода / с, но когда я тестирую несколько файлов, 850 МБ / с - это максимум, который я когда-либо видел. Так что я считаю, что где-то наткнулся на узкое место. В хосте 8 4-гигабитных карт оптоволоконного канала, поэтому мне трудно поверить в это, поэтому я застрял в догадках, что это HBA / SP или SQLIO.
Что-то, что мне не хватает, может быть горлышком бутылки? Это нормальное поведение или SQLIO должен агрегировать пропускную способность по всем точкам монтирования?
В качестве примечания: в попытке доказать, что проблема не в SQLIO и что он не «усредняет» пропускную способность по файлам, я запустил 2 экземпляра SQLIO одновременно на разных точках монтирования и увидел примерно 400 МБ / с. на каждой. Для меня это доказало, что это не SQLIO.
Настроен ли PowerPath (или аналог в вашей системе) для правильной балансировки нагрузки HBA? Все ли HBA работают правильно? Вы должны просто зайти на сервер и взглянуть на конфигурацию Powerpath, чтобы получить эти ответы.
Всегда стоит заглядывать в журнал событий Windows, чтобы увидеть, не появляются ли какие-либо сообщения от HBA или powerpath.
Я не могу вспомнить, использует ли DMX пулы хранения или нет, но есть несколько хороших, основных вопросов при рассмотрении производительности SAN: На сколько дисков распределено это хранилище? Обычно лучше больше. Если это всего лишь несколько дисков, сомневайтесь. Если вы спрашиваете о дисках, вы можете также спросить о скорости вращения. Быстрее - лучше, а 15 КБ лучше, если вы не можете получить SSD (что вы, вероятно, не можете). Все ли эти точки монтирования ссылаются на разные области одного и того же диска (ов)? Использует ли SQL Server эти диски совместно с другими приложениями? Какой объем кэша записи доступен на DMX, и достаточно ли велики мои тестовые файлы, чтобы все они помещались в кеш?
(Урок истории: IIRC, супер-старые DMX использовали диски SCSI и (параллельные!) Шины для подключения служебного процессора (ов) к дискам. IIRC, шина SCSI-3, которая вмещала до 15 дисков, могла быть перегружена по вводу-выводу всего для 3 или 4 дисков 15KRPM и просто не мог справиться с 15 (или даже 7) дисками. Вот почему, более или менее, у нас есть SAS.)
Администраторы SAN могут сказать вам, что в DMX так много кэша записи, что вы не можете его переполнить. Это не обязательно так (8 лет назад у меня был такой инцидент с DMX, когда новый, причудливый сервер Itanium SQL Server загружал в него данные). Часто они правы; они придерживаются этого мнения, потому что обычно их беспокоит больше места для хранения и его использование, чем его производительность. НО многие администраторы SAN не понимают, насколько быстро SQL Server может генерировать данные (для тестирования сделайте пару перекрестных соединений между некоторыми системными таблицами и вставьте полученные данные во временную таблицу с помощью SELECT INTO, а затем посмотрите ввод-вывод в журнале файл.)
Администраторы SAN также могут сказать вам, что под вашими LUN находится много дисков, что также может быть спорным. Для справки перейдите на tpc.org и посмотрите, как настроены системы хранения для сравнительного анализа. Помните, как только DMX (или что-то еще) исчерпывает кеш записи, система должна полагаться на возможности нижележащих дисков.
Администраторы SAN должны быть в состоянии определить, исчерпываются ли тесты кеш-памяти записи или перегружены ли диски, на которых хранятся данные вашего сервера.
Это хорошее количество HBA; У меня никогда не было HBA со скоростью более 4х4 Гб / сек. Вы уверены, что не видите каких-либо конфликтов или узких мест на объединительной плате PCIe? Разные типы PCIe имеют разные скорость передачи данных.
Вы уверены, что все эти ядра загружаются равномерно при запуске sqlio и ни одно из них не загружается на 100%? Беглый взгляд на диспетчер задач скажет вам.
Помимо этого, я думаю, что вам нужно, чтобы администратор SAN смотрел на сторону SAN, включая любые переключатели фабрики между вашим сервером и DMX.