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

Оптимальная настройка диска для SQL Server

У меня есть в общей сложности 8 физических дисков, которые я могу использовать (не считая 2 для зеркальной ОС) для довольно часто используемого SQL Server.

Он используется для обслуживания веб-приложения (Win2k3, IIS6, ASP.Net), которое довольно активно используется (400 тыс. Пользователей) с довольно равномерной пропорцией записи и чтения. Однако база данных не очень большая (пока) - в настоящее время около 10 ГБ.

Моя первоначальная мысль - разделить диски базы данных следующим образом:

По сути, я ищу лучшую производительность за счет уменьшения числа конфликтов между разными операциями записи (TempDB, журналы и данные).

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

Мы могли бы потратить еще 5 тысяч фунтов стерлингов на внешнюю настройку Raid, чтобы можно было использовать базу данных Tempdb и резервные копии в режиме RAID, но я думаю, что это немного перебор.

Есть предположения?

Вы должны использовать RAID 1 или 10, если дисковое пространство не является вашей основной проблемой, потому что они много быстрее, чем RAID 5, особенно для записи; Кроме того, RAID 5 совершенно бесполезен с тремя дисками, он становится все более и более полезным, чем больше становятся массивы.

Я бы также избегал использования одного диска без рейда для tempdb: если он сломается, вы ничего не потеряете, но ваш сервер будет недоступен, пока вы не сможете его заменить.

Я бы сконфигурировал диски в 3 тома RAID 1 по 2 диска каждый, один для данных, один для журналов транзакций и один для tempdb; остается диск, который можно использовать для RAID-массива резервного тома или в качестве глобального горячего резерва; Я бы не стал делать том данных RAID 5, так как это сделает его помедленнее.

Если вам нужно больше места для данных и вы можете справиться с потерей базы данных tempdb, вы можете использовать 4 диска в RAID 10 для данных, 2 диска в RAID 1 для журналов транзакций и один диск для tempdb.

Вам вряд ли понадобится более двух дисков RAID 1 для журналов транзакций: они не должны расти слишком сильно, если вы регулярно их создаете; и ты должен.

Читать этот по Кендал Ван Дайк, не только содержит множество ссылок на отличные статьи, но и объясняет различные возможные настройки и влияние на производительность.

Я бы сделал что-то подобное, но это зависит от загрузки вашего сервера и возможностей оборудования.

  • Аппаратный Raid-5 для данных
  • Аппаратный Raid-5 для бревен
  • Raid 5 (или 1) для Tempdb
  • Raid 1 для резервного копирования на сервере

RAID 10 быстрее, чем RAID 5. В остальном характеристики выглядят неплохо.

Я бы также рекомендовал RAID10. Единственным недостатком является то, что вам нужно как минимум 4 диска на массив RAID10, поэтому вы застрянете без выделенного массива для Tempdb и резервных копий сервера (при условии, что вы поместите файлы db и файлы журнала каждый в свой собственный массив).

Итак, у вас будет:

RAID1 (2 диска) = ОС и двоичные файлы SQL; RAID10 (4 диска) = файлы БД; RAID10 (4 диска) = файлы журнала; Tempdb =?; На резервном копировании сервера =?

У меня возникнет соблазн сделать следующее:

  • Файл данных базы данных пользователей Raid 10 (4 диска)
  • Файл журнала базы данных пользователей Raid 1 (2 диска)
  • Raid 1 TempDB и системные базы данных (2 диска)

По возможности, резервное копирование по сети на другой сервер.

Переходите на 64-битную версию с как минимум 8 ГБ оперативной памяти.