У меня довольно занятый сервер баз данных под управлением SQL Server 2008 R2, который имеет следующую настройку:
- SATA RAID 1 (2 накопителя) - ОС / Программы
- SAS RAID 10 (4 диска) - Sql Database Files (данные и журналы)
- SAS RAID 1 (2 накопителя) - TempDB (данные и журналы)
Предполагая, что я не могу добавить дополнительные диски на этот сервер, наилучшим образом ли я использовал имеющуюся конфигурацию? Или я должен рассмотреть другую схему здесь, где журналы изолированы, например, от файлов данных?
Обновить:
Для тех, кто запросил дополнительную информацию об оборудовании:
- Диски SATA (используемые для раздела ОС / программы): WD 7200 RPM 3 Гбит / с, 3,5 дюйма SATA
- В других массивах используются диски SAS: Seagate 15K RPM 6 Гбит / с, 3,5 дюйма SAS
- Используемый контроллер RAID: порт LSI 9260-8i SAS / SATA 6 Гбит 8
Обновление 2:
Судя по полученным мною отзывам, у меня есть следующие жизнеспособные варианты на выбор - я назначу награду тому, кто скажет мне, что, вероятно, будет лучшим в описанной мной среде:
- Оставьте все как есть - я, вероятно, не сделаю намного лучше
- Переместите мои 2 диска SAS RAID 1 в существующий массив RAID 10, чтобы он состоял из 6 дисков.
- Переместить мои файлы журналов на SAS RAID 1 и / или переместить TempDB (данные или журналы) обратно на RAID 10
sql-server
hardware
DanP
источник
источник
Ответы:
Варианты этого вопроса появляются регулярно:
Есть также случайные ссоры из-за разделения данных / журналов "наилучшей практики".
Без более подробного анализа того, что делает этот сервер, применяется тот же совет, что и ранее.
В сплите редко бывает какая-либо точка с таким небольшим количеством шпинделей. Один массив с большей емкостью операций ввода-вывода обычно впитывает комки и неровности вашей рабочей нагрузки лучше, чем 2 меньших массива.
Один из вариантов, который стоит протестировать, - это поместить tempdb на диск с ОС. Делайте это только в том случае, если у вас есть репрезентативная рабочая нагрузка, которую вы можете повторно воспроизводить, чтобы обеспечить правильное сравнение конфигурации. Если вы будете использовать эту схему в производстве, убедитесь, что рост базы данных tempdb ограничен, чтобы вы случайно не использовали все свободное место на диске ОС.
Принимая во внимание, что ваши диски ОС имеют скорость 7200 об / мин, я был бы удивлен, если бы база данных tempdb в конфигурации дисков ОС принесла какую-то пользу.
источник
Все зависит от вашей рабочей нагрузки, но только с 6 накопителями это ограничивает ваши возможности. Если ваша рабочая нагрузка не сильно зависит от базы данных tempdb для таких вещей, как сортировки, хеш-таблицы и изоляция моментальных снимков, то вам лучше использовать вместе 6 дисков SAS в RAID 10. Однако, если вы знаете или располагаете показателями, чтобы доказать, что Tempdb интенсивно используется, тогда вы должны держать его отдельно, как и у вас.
источник
Это очень сильно зависит от того, что вы подразумеваете под «очень занятым»: различные шаблоны рабочей нагрузки (интенсивная запись или нет, массовые операции, общие или нет, уровень одновременного доступа, если назвать только три из множества переменных) могут оказать сильное влияние на выполнение любого данного расположения шпинделя.
Для ситуации с интенсивной записью отделение журналов от данных может иметь существенное значение, так как каждая запись включает в себя обновление как журнала, так и файлов данных, поэтому требует значительного количества дополнительного переворачивания заголовка, если оба набора файлов находятся на одном и том же наборе шпинделей ,
Без дальнейшей ссылки на вашу рабочую нагрузку (и спецификации этих дисков и любого контроллера, который находится между ними и машиной) я был бы склонен пойти на три тома: один для программ OS + и tempdb (данные), один для основной БД данные и третий для журналов (как базы данных tempdb, так и основных баз данных).
Конечно, если все ваши рабочие нагрузки очень легки для операций записи, вам не следует тратить слишком много времени на заботу о разделении данных и журналов, так как это не сильно повлияет на производительность, а выделение целого тома для них будет довольно расточительным из доступных. Космос.
источник
Фактический ответ зависит от ваших потребностей, но обычно «помещать данные и журналы в разные массивы» важнее, чем «помещать tempdb в свой собственный массив».
Учитывая количество доступных вам дисков, моя отправная точка будет:
Что нужно сделать, это использовать SQLIO для проверки производительности различных конфигураций дисков.
источник
В зависимости от того, для чего вы используете БД (OLTP или хранилище), ваша конфигурация выглядит как хорошая общая конфигурация. Если бы у вас было больше дисков, у вас было бы больше вариантов.
Вы можете получить лучшую производительность, если переключите диск для вашей TempDB на RAID 0 (чередование). Это увеличивает риск неудачи, но, поскольку TempDB только буферизует данные, вы не можете их потерять. Поэтому большинство людей считают это разумным компромиссом. Просто держите запасной (или горячий запасной).
Одна вещь, которую вы не упомянули, но можете попробовать (если вы еще этого не сделали): Microsoft рекомендует разбить вашу TempDB на несколько файлов (по одному на процессор). Конечно, лучше всего, если они находятся на разных дисках, но просто наличие отдельных файлов помогает. http://msdn.microsoft.com/en-us/library/ms175527(v=SQL.105).aspx
источник