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

Использование двух файловых групп на одном RAID 10

Если сервер Microsoft SQL Server 2008 Standard Edition настроен, как показано ниже, дает ли вариант 1 преимущество перед вариантом 2?

Базовая конфигурация:

Опция 1:

Настройте один виртуальный диск на RAID 10 и используйте одну файловую группу

Вариант 2

Настройте два виртуальных диска на RAID 10 и используйте две файловые группы

Здравый смысл подсказывает мне, что преимущества в скорости не будет, поскольку RAID 10 может только читать / писать с той же скоростью.

Может ли кто-нибудь посоветовать, преобладает ли здравый смысл или есть причина, которую я упустил из виду, почему это было бы выгодно?

Не уверен, есть ли повышение производительности для нескольких групп файлов, но вы можете обнаружить, что несколько файлов в вашей файловой группе (-ах) улучшат производительность.

Просмотрите мой вклад в этот вопрос: Почему использование ЦП так несимметрично на нашем сервере SQL Server с 8 процессорами?

Мы тщательно настраиваем наши самые часто используемые таблицы в файловых группах с несколькими файлами в них. Одно из улучшений производительности заключается в том, что SQL будет направлять запросы к каждому файлу в файловой группе, поэтому, если BigOverUsedTable находится в FileGroup1, а FileGroup1 имеет четыре файла в нем, а ваша БД имеет 8 ядер, он фактически будет использовать четыре ядра для выбора большое число, обрабатывающее неприятный запрос из BigOverUsedTable "- в противном случае он будет использовать только один процессор. Мы получили эту идею из этой статьи MSDN:

http://msdn.microsoft.com/en-us/library/ms944351.aspx

Из TFA:

«Файловые группы используют параллельные потоки для улучшения доступа к данным. При последовательном доступе к таблице система создает отдельный поток для каждого файла параллельно. Когда система выполняет сканирование таблицы для таблицы в файловой группе с четырьмя файлами, она использует четыре отдельных потоков для параллельного чтения данных. В общем, использование нескольких файлов на отдельных дисках повышает производительность. Слишком много файлов в файловой группе может вызвать слишком много параллельных потоков и создать узкие места ».

Благодаря этому совету у нас есть четыре файла в нашей файловой группе на 8-ядерном компьютере. Это хорошо работает.

Единственные преимущества, которые вы получите, заключаются в том, что у ОС будет две очереди физических дисков в Windows вместо одной, и что вы будете готовы добавить еще один массив и переместить в него файл базы данных в будущем. И то, и другое - довольно незначительные преимущества.

Если у вас есть время, вы всегда можете попробовать и увидеть, а не гадать!

Я не вижу ощутимого прироста производительности с 2 виртуальными дисками на 1 виртуальном диске, но наличие дополнительных файлов и файловых групп всегда полезно для проверки в будущем.

Размещение ваших индексов в отдельной файловой группе - хорошая практика, тогда вы всегда можете переместить файловую группу на новый набор шпинделей для дополнительного повышения производительности!

Никакого измеримого преимущества в скорости не будет, но, как указывали другие, наличие двух файловых групп - это более перспективная концепция.

Ваши два варианта просто не дают никаких преимуществ, поскольку операции ввода-вывода будут просто разбросаны по всем физическим дискам в обеих конфигурациях.

Если у вас 4 физических диска и вы действительно хотите получить от них максимальную производительность (*), вот как это сделать:

  • Создайте 2 массива RAID 1, каждый из которых состоит из 2 дисков.
  • Создайте один том для каждого массива.
  • Создайте файловую группу на каждом томе.
  • Оптимизируйте свою базу данных для максимального параллелизма.

Последний пункт - самый важный; с этой конфигурацией вы можете иметь две файловые группы, эффективно работающие параллельно, но это будет полезно только в том случае, если вы можете разместить там свои данные таким образом, чтобы можно было выполнять ввод-вывод для обеих из них одновременно; так что вы можете поместить разные таблицы в разные файловые группы или использовать одну из них для таблиц, а другую для индексов, или ... у вас есть бесконечные решения, все зависит от вашей реальной рабочей нагрузки.

(*) Это действительно продвинутая оптимизация, в большинстве случаев это просто излишество, так как одной файловой группой / одним томом / одним массивом будет намного проще управлять и будет достигаться очень похожая производительность, если только вы на самом деле жестяная банка распараллелить ваш ввод / вывод.

Вариант 2, скорее всего, приведет к большему физическому перемещению головок дисков, поскольку им нужно перемещаться между двумя логическими дисками. Это может или не может компенсировать какие-либо преимущества, полученные от отдельных дисковых очередей. Только тесты с использованием вашей среды могут дать окончательные результаты.