Выбор варианта настройки RAID для логов бд SQL Server

Модератор: Дмитрий Юхтимовский

Выбор варианта настройки RAID для логов бд SQL Server

Сообщение Di8 » 07 май 2020, 11:43

Здравствуйте.
На Adaptec 7805 требуется собрать массив из 3х или 4х intel ssd 3710 (raid-1e или raid-10). Массив будет использоваться исключительно под логи баз данных в SQL Server.
При создании массива из дисков SSD контроллер рекомендует отключить кэши чтения и записи. При этом скорость линейной записи массива становится практически неотличимой от скорости для 1го диска.
Если включить кэширование записи контроллера, то линейная скорость записи в 1.5 раза возрастает, но падают некоторые показатели для случайной записи.
Подробнее на рисунке: слева - массив без кэширования, в центре - один диск без кэширования, справа - массив с кэшированием.
comparison_raid10_s.png
comparison_raid10_s.png (251.15 KiB) Просмотров: 970


Как я и сказал, на массиве будут расположены только логи баз данных. По идее речь идет только о последовательном доступе на запись. И в этом случае получается, что предпочтительнее массив с кэшированием - линейная скорость в 1.5 раза выше. Но смущает сильное падение некоторых показателей случайной записи. В поддержке Adaptec сказали, что кеш можно включить для SSD-дисков, если это дает лучшую производительность для нашей системы.
Вопрос: какой из двух вариантов будет предпочтительней для логов баз данных SQL Server: с кешированием или без? Мне кажется, что все-таки с кешированием операций записи.
Спасибо.
Di8
 
Сообщений: 9
Зарегистрирован: 07 май 2020, 11:28

Re: Выбор варианта настройки RAID для логов бд SQL Server

Сообщение Дмитрий Юхтимовский » 07 май 2020, 13:10

А сколько баз будет? И можно ли увидеть данные о фактическом распределении нагрузки на диски между файлами этих баз?
Лучше всего будет получить эти данные с сервера MS SQL, который стартовал хотя бы неделю назад (чтобы это была статистика минимум за полную неделю), запросом к динамическому представлению sys.dm_io_virtual_file_stats (к примеру, клиентская часть нашего сервиса SQLSize http://gilev.ru/sqlsize штатно опрашивает эту статистику в ходе еженедельного регламента опроса сервера).

Далее: вы не рассмотрели вариант скорости с RAID1 из двух дисков. Может оказаться так, что например два RAID1 будут предпочтительнее - может, это даст меньше суммарной скорости, зато можно изолировать нагрузку одних баз от других, уменьшив тем самым негативное влияние наиболее тяжёлых баз на производительность других баз.
Дмитрий Юхтимовский
 
Сообщений: 619
Зарегистрирован: 11 фев 2013, 19:28
Откуда: gilev.ru

Re: Выбор варианта настройки RAID для логов бд SQL Server

Сообщение Di8 » 07 май 2020, 14:19

База пока будет одна. В будущем может быть две.
Собственно, данный сервер пока не в строю. Готовится на замену рабочему. Рабочий очень слабенький.
На рабочем лог сейчас работает на массиве из 4хSAS raid-10. Фактически там сейчас постоянно работает только одна рабочая база (иногда немного тестовая).
Статистика по нагрузке лога рабочей базы:
------
database_id 5,00
file_id 2
sample_ms 1442646889
num_of_reads 302813
num_of_bytes_read 3,17177E+11
io_stall_read_ms 422907
io_stall_queued_read_ms 0
num_of_writes 17056699
num_of_bytes_written 3,17197E+11
io_stall_write_ms 1820749
io_stall_queued_write_ms 0
io_stall 2243656
size_on_disk_bytes 95563022336
file_handle 0x0000000000000894
------
Я так понимаю, нагрузка на чтение - результат постоянного резервирования журнала. Основную нагрузку дает все-таки запись в лог?
RAID1 - пока вариант только для экономии количества SSD дисков, так как база, как я сказал, пока одна. Возможно потом будет две рабочих базы. Тестовые, скорей всего на старый сервер уйдут и на новом появятся только, если мощности потребуются для какой-нибудь тяжелой разовой обработки данных.
Di8
 
Сообщений: 9
Зарегистрирован: 07 май 2020, 11:28

Re: Выбор варианта настройки RAID для логов бд SQL Server

Сообщение Дмитрий Юхтимовский » 07 май 2020, 14:28

покажите уже и нагрузку на чтение-запись файлов БД, и tempdb тоже.
Дмитрий Юхтимовский
 
Сообщений: 619
Зарегистрирован: 11 фев 2013, 19:28
Откуда: gilev.ru

Re: Выбор варианта настройки RAID для логов бд SQL Server

Сообщение Di8 » 07 май 2020, 14:48

Дмитрий Юхтимовский писал(а):покажите уже и нагрузку на чтение-запись файлов БД, и tempdb тоже.

Конечно,
для базы:
mOXX5nr[1].png
mOXX5nr[1].png (8.53 KiB) Просмотров: 962


для файлов tempdb (их 4) и лог- далее указан последним:
IM42P0Z[1].png
IM42P0Z[1].png (42.97 KiB) Просмотров: 962


Файл базы и файлы лога лежат на разных SSD-дисках.
Di8
 
Сообщений: 9
Зарегистрирован: 07 май 2020, 11:28

Re: Выбор варианта настройки RAID для логов бд SQL Server

Сообщение Дмитрий Юхтимовский » 07 май 2020, 15:11

Показали бы снимок таблички со всеми строками сразу, в текущем виде чудовищно неудобно.
Но суть понятна: если базы и tempdb уже на SSD, и вас производительность устраивает - значит, хорошо.
Дмитрий Юхтимовский
 
Сообщений: 619
Зарегистрирован: 11 фев 2013, 19:28
Откуда: gilev.ru

Re: Выбор варианта настройки RAID для логов бд SQL Server

Сообщение Di8 » 07 май 2020, 15:36

Дмитрий Юхтимовский писал(а):Показали бы снимок таблички со всеми строками сразу, в текущем виде чудовищно неудобно.
Но суть понятна: если базы и tempdb уже на SSD, и вас производительность устраивает - значит, хорошо.

Извините.
База (file_id=1) и лог (file_id=2)
zd0G3pW[1].png
zd0G3pW[1].png (8.32 KiB) Просмотров: 960


TempDB (лог file_id=2)
Qzl7kst[1].png
Qzl7kst[1].png (15.63 KiB) Просмотров: 960


Меня в данном случае больше всего интересовало, какой из вариантов организация массива: с кешированием записи или без - все-таки лучше с учетом нагрузок на лог базы данных. С кешированием получаем выше скорость последовательной записи, но некоторые показатели случайной записи ниже. Собственно все видно на самом первом сравнительном рисунке в первом сообщении. Мне кажется, что с кешированием лучше в данном случае. Вы как думаете?
Di8
 
Сообщений: 9
Зарегистрирован: 07 май 2020, 11:28

Re: Выбор варианта настройки RAID для логов бд SQL Server

Сообщение Дмитрий Юхтимовский » 07 май 2020, 16:13

Понятие "лучше" тут не универсально, и напрямую зависит от того, какого характера нагрузки возлагаются на этот дисковый массив. 1С любит случайные чтение-запись мелкими пакетами, поэтому я бы больше внимания придавал результатам именно таких тестов.
Ну и ещё неплохо бы тестировать не "свежесобранный" массив, а например сразу после двух полных перезаписей объёма массива, это даст гораздо более достоверный результат в случае SSD.
Дмитрий Юхтимовский
 
Сообщений: 619
Зарегистрирован: 11 фев 2013, 19:28
Откуда: gilev.ru

Re: Выбор варианта настройки RAID для логов бд SQL Server

Сообщение Di8 » 07 май 2020, 16:46

Я думал нагрузка на логи SQL Server достаточно определенная, независимо от 1с.
По данным, которые я предоставил, мне кажется, что нагрузка на лог идет больше на запись (по крайней мере операций записи гораздо больше и задержки из-за них больше). Если я правильно предполагаю, что запись в лог идет последовательно, то тогда предпочтительнее иметь более высокую скорость последовательной записи. Или я неверно предполагаю?
Di8
 
Сообщений: 9
Зарегистрирован: 07 май 2020, 11:28

Re: Выбор варианта настройки RAID для логов бд SQL Server

Сообщение Дмитрий Юхтимовский » 07 май 2020, 18:20

Если это была запись на ленту - то каждый следующий блок был бы ровно за предыдущим.
А поскольку это лог, который то нарастает, то "спадает" в результате бэкапа - каждая новая запись может находиться в произвольном месте, фрагментация может быть высокая, поэтому скорость случайной записи считается важнее скорости последовательной.
Дмитрий Юхтимовский
 
Сообщений: 619
Зарегистрирован: 11 фев 2013, 19:28
Откуда: gilev.ru

Re: Выбор варианта настройки RAID для логов бд SQL Server

Сообщение Di8 » 07 май 2020, 18:55

Как же тогда лог нормально на рейде из SAS работает: там же скорости случайного доступа - единицы мегабайт/c жалкие? :?
Еще больше запутался только.
Di8
 
Сообщений: 9
Зарегистрирован: 07 май 2020, 11:28

Re: Выбор варианта настройки RAID для логов бд SQL Server

Сообщение Дмитрий Юхтимовский » 08 май 2020, 00:01

Там кэш контроллера отрабатывает с режимом отложенной записи, видимо вы своей нагрузкой не превышаете его способностей. Можно ради интереса переключить режим из write back в write through и неприятно удивиться падению производительности :D
Дмитрий Юхтимовский
 
Сообщений: 619
Зарегистрирован: 11 фев 2013, 19:28
Откуда: gilev.ru

Re: Выбор варианта настройки RAID для логов бд SQL Server

Сообщение Di8 » 08 май 2020, 00:10

Сейчас кеш всего 256MB, но может и так конечно.
Если предпочтительнее иметь более высокую производительность на случайном доступе, тогда вариант без кеширования получается оптимальнее.
Но с другой стороны у другого контроллера кещ еще поболее - 1Гб, значит имеет смысл все-таки включить его?
Di8
 
Сообщений: 9
Зарегистрирован: 07 май 2020, 11:28

Re: Выбор варианта настройки RAID для логов бд SQL Server

Сообщение Дмитрий Юхтимовский » 08 май 2020, 10:26

Вы можете "поиграть настройками", например переключая интересующие вас варианты настроек раз в два дня, и наблюдая разницу производительности. Для чистоты эксперимента при смене настроек можно рестартовать службу MS SQL, чтобы статистика накапливалась заново.
Дмитрий Юхтимовский
 
Сообщений: 619
Зарегистрирован: 11 фев 2013, 19:28
Откуда: gilev.ru

Re: Выбор варианта настройки RAID для логов бд SQL Server

Сообщение Stanislav » 23 июн 2020, 14:44

Добрый день у меня система
Сервер Supermicro SYS-7038A-I
Процессор e5-2667v3 2шт (именно парные сняты с сервера HP)
Ram 128 gb
Adaptec RAID 78165 Cache 1Gb
2 Sas WD DC HC320 в RAID 1 (бэкапы виртуалок) Cache 1Gb дает значительный прирост скорости
2 ssd Samsung 860 pro в RAID 1 (Server 2012 Terminal)
2 ssd Samsung 860 pro в RAID 1 (Server 2012 1c Server + MS SQL) вчера перенес вирт машину на 2 Sas WD Ultrastar DC HC320
в RAID 1
1 ssd Samsung 860 pro SATA AHCI (win Server 2008r2 Veeam backup & replication, domen и тд)

Виртуализация esxi 6.7 версия VMware vSphere 6 Enterprise Plus

ТАк вот по моим наблюдениям и прочитав много статей насчет SSD и RAID. Пришел к выводу что со временем очень сильно замедляется запись на диск. Так как нет полноценной (вообще нет) поддержки TRIM.
Контроллеры не умеют работать с SSD (возможно в серверных SSD есть вшитая функция TRiM хотя я сомневаюсь как она определит какие блоки нужно чистить )

Для чистоты эксперимента в системе установлен был одиночный диск 1 ssd Samsung 860 pro через SATA AHCI
Все диски SSD размечались не на полную емкость, для увеличения резервной области.

Итог : Вы можете увидеть в скриншотах.
Тесты сделаны в рабочее время при активных 15 пользователей и запущенными фоновыми заданными такими как обновление наличия товаров и импорт заказов покупателей с 18 сайтов (данная стандартная функция 1с грузит систему по процессорам в пике до 93%)

Замеры Server 2012 1c Server + MS SQL проводились на 2 Sas WD Ultrastar DC HC320 в RAID 1 Adaprec Cache 1Gb

Выводы работа ssd в RAID на запись замедляется со временем. SSD который работает через прослойку виртуализации SATA AHCI не потерял скорость в записи.
Нет скриншота теста дисков где раньше стоял Server 2012 1c Server + MS SQ но там такая же ситуация как и в Server 2012 Terminal по скорости записи (одинаковые диски в одинаковом RAID).


Думаю разобрать RAID и прикрутить SSD к RAID массиву SAS как maxCache 4.0 Microsemi Adaptec
https://storage.microsemi.com/ru-ru/solutions/maxcache/
Попробовать эте технологию, она напоминает Fusion Drive на Mac OS если она так же работает, то это полное Го***но.
Возможно от того что у меня младшая модель мака 2015г и там прикрутили всего 24gb ssd к hdd 1TB. (проверим как будет работать два ssd 512gb в зеркале с Sas 8TB, хотя по моим подсчетам на такой обьем SSD нужно как минимум 30% от емкости диска)
В вашем случае это более интересный вариант и даст ожидаемый результат.

А так же думаю прикупить.
Надежный серверный Intel Optane SSD P4800X Series 375GB и делать так же как сейчас бэкапы Veeam backup раз в сутки всей виртуалки и каждые 15 мин Transaction Log Backup на 2 Sas WD Ultrastar DC HC320 в RAID 1 Adaprec Cache 1Gb .
Этого достаточно для того что если накроется SSD можно откатится с интервалами 15мин.
Вложения
Server-2008r2-Veeam-backup.jpg
1 ssd Samsung 860 pro SATA AHCI
Server-2008r2-Veeam-backup.jpg (163.17 KiB) Просмотров: 491
Server-2012-Terminal.jpg
2 Sas WD Ultrastar DC HC320 в RAID 1 Adaprec Cache 1Gb
Server-2012-Terminal.jpg (169.85 KiB) Просмотров: 491
Server-2012-1c-Server-+-MS-SQL.jpg
2 ssd Samsung 860 pro в RAID 1 Server 2012 Terminal
Server-2012-1c-Server-+-MS-SQL.jpg (188.54 KiB) Просмотров: 491
Stanislav
 
Сообщений: 5
Зарегистрирован: 23 июн 2020, 12:22

Re: Выбор варианта настройки RAID для логов бд SQL Server

Сообщение Дмитрий Юхтимовский » 23 июн 2020, 15:11

А вас совсем-совсем не смущает, что два механических диска в RAID1 чудесным образом дают потоковые скорости чтения и записи, которыми SATA SSD мог бы гордиться?
А в свою очередь, два SATA SSD в RAID1 тоже каким-то магическим образом дают потоковые скорости чтения и записи такие, что не каждый NVMe диск осилит?

Скажу проще: результаты теста можно считать недостоверными, они никоим образом не отражают реальную производительность, вы меряли скорость работы кэша.
Попробуйте тестировать не 1 прогон на 16 мегабайт, а например 5 прогонов по 4 гигабайта, почувствуйте разницу.
Дмитрий Юхтимовский
 
Сообщений: 619
Зарегистрирован: 11 фев 2013, 19:28
Откуда: gilev.ru

Re: Выбор варианта настройки RAID для логов бд SQL Server

Сообщение Stanislav » 23 июн 2020, 15:14

В данной статье и был задан вопрос насчет включать кэш или нет.
И поднята тема что рейд плохо влияет на SSD запись.
Не было цели показать действительно точные цифры производительности
В данной статье я упомянул что производительность зависит от кэша (влезут в него временные данные или нет) если я буду делать тест с 4gb и 5 проходов конечно он не влезет в кэш Adaptec 1bg и не успеет записаться на Sas диск. В том то и дело интересен размер кэша для работы с базой SQL. Как хорошо будет работать мах кэш Adaptec из SSD.

Вечером сделаю на производительность как вы посоветовали, результаты опубликую.
Stanislav
 
Сообщений: 5
Зарегистрирован: 23 июн 2020, 12:22

Re: Выбор варианта настройки RAID для логов бд SQL Server

Сообщение Дмитрий Юхтимовский » 23 июн 2020, 16:07

Используемые вами десктопные SSD Samsung действительно очень плохо переживают отсутствие TRIM, и поэтому их категорически нежелательно использовать в составе аппаратного RAID. Но в составе программного RAID - всё существенно проще, операционная система передаёт каждому устройству нужные ему команды, и падение производительности совсем не такое ужасное, как в аппаратном.

Если используете две разные виртуалки под терминальный сервер и под сервер 1С+СУБД - будет совсем не лишним озаботиться парковкой ядер, чтобы каждая виртуалка использовала только выделенные ей конкретные ядра и не пыталась использовать чужие.
Дмитрий Юхтимовский
 
Сообщений: 619
Зарегистрирован: 11 фев 2013, 19:28
Откуда: gilev.ru

Re: Выбор варианта настройки RAID для логов бд SQL Server

Сообщение Stanislav » 24 июн 2020, 14:56

Немного по вопросам заданным человеком создавшем тему

1.На Adaptec 7805 требуется собрать массив из 3х или 4х intel ssd 3710 (raid-1e или raid-10)

raid-10 нет смысла делать упираетесь в пропускную способность SATA 3

2. Но с другой стороны у другого контроллера кещ еще поболее - 1Гб, значит имеет смысл все-таки включить его?

Опять же все упирается в производительность SATA3 как бутылочное горлышко. При передаче из кэша контроллера информации на SSD происходит в два раза падение скорости.
Все зависит от объема информации попадающий в кэш контроллера. Будет ли его переполнение или нет.

--------------------------------------------------------------------------------------------------------------------------------------------------------------
Да программный Raid штука хорошая, понравились тома ZFS софт Raid и mdadm Raide. Последний вроде бы как можно подружить с ESXI. Ну а так эти тома спокойно можно прокинуть как NFS на esxi но это не для размещения рабочих ВМ. Как плохо что ESXI не дружит с псевдо RAID и программными.

Вчера перешерстил форумы с серверными ssd,dsdjl вывод однозначный если хардовый Raid однозначно падение производительности.

Варианта 2 самый производительный и производительный.
При использовании виртуализации (хотя так же можно и с физ серверами)

1. Связка ssd nvme m2 + бэкапы на raide 10 с maxCache.
Можно поставить два диска ssd nvme m2, прокинуть физически на ВМ, второй сделать Replication. При падении диска ВМ переключится на второй диск, вы даже не заметите что произошло. Там много вариантов построение отказоустойчивого кластера.
Отпадает такая необходимость в построении RAID из SSD, nvme в любом случае быстрее SATA 3.
Ну и если ты буржуй то можно прикупить два Intel 3D-XPoint - Optane.

Для меня это кажется единственный правильный вариант.
Время идет, SSD уже вышли очень давно а не кто из производителей RAid не хочет их полноценно подружить.
---------------------------------------------------------------------------------------------------------------------------------------------------------------

2. Связка SAS Raid 10 + SAS SSD maxCache.
Почему именно SAS ответ простой. SSD sata 3 упираются в производительность 6 Гбит. по сравнению SAS 12 Гиб скорость как у NVME.
И очень важный момент sas имеет два полудуплексных порта, что это значит? Пример при деградации одного из дисков в Raid 1 происходит постоянное перестроение массива и скорость катастрофически падает(не возможно работать с 1с особенно заметно на SSD). В случае с sas падение не будет так заметно из за наличии 2х портов одновременно работающих в двух направлениях.

Если действительно есть желание сделать RAID из SSD то выбор SAS. (скорость и меньше зависимость от падение одного из дисков в массиве)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
Ну а для любителей цифр скорости знакомый дал совет, он работает в ЦОД инженером по проектированию отказоустойчивых кластеров.

Делаем RAID 10 массив из SSD SAS накопителей, например берем 12шт intel
Производительность массива составит в тестах.
800’000 IOPS на операциях чтения
400’000 IOPS на операциях записи
SSD 1,6TB x 12 шт все в RAID 10

-----------------------------------------------------------------------------------------------------------------------------------------------------------------
Насчет ядер вы правы это хорошая идея, я не совсем разобрался с Bios Supermicro в соседней теме поднимался данный вопрос но она закрыта.


Сделал тесты как вы сказали.
Результаты деградации в Raid 1 видно.
SAS hdd из Raid 1 показал отличный результат для обычных дисков с 7200 об/мин.
Вложения
Server-2012-1c-Server-+-MS-SQL.jpg
2 Sas WD DC HC320 в RAID 1
Server-2012-1c-Server-+-MS-SQL.jpg (168.36 KiB) Просмотров: 476
Server-2012-Terminal-.jpg
2 ssd Samsung 860 pro в RAID 1
Server-2012-Terminal-.jpg (175 KiB) Просмотров: 476
Server-2008r2-Veeam-backup.jpg
1 ssd Samsung 860 pro SATA AHCI
Server-2008r2-Veeam-backup.jpg (162.78 KiB) Просмотров: 476
Stanislav
 
Сообщений: 5
Зарегистрирован: 23 июн 2020, 12:22

Re: Выбор варианта настройки RAID для логов бд SQL Server

Сообщение Дмитрий Юхтимовский » 24 июн 2020, 23:54

Как-то у вас всё в кучу смешалось.
Интерфейс SAS12 хоть и быстрее, чем SATA-III (то есть пропускная способность интерфейса соответственно 12 гигабит против 6), но он имеет существенно более высокие задержки, чем NVMe (который по сути "врезан" в шину PCI Express, и имеет существенно меньшие задержки и существенно бОльшую производительность интерфейса в целом и операций в частности).

RAID из SSD может строиться не только для повышения скорости/производительности, а именно для улучшения отказоустойчивости, чтобы выход из строя 1-2 накопителей не приводил к немедленному выходу из строя всего сервера.
При этом надо понимать, что выйти из строя может что угодно, поэтому если вы сделаете условно троекратное обеспечение отказоустойчивости дисков, но хост-машина при этом у вас будет одна - у вас неизбежно останется какое-то количество единых точек отказа, а именно все "незадублированные" узлы. Если вы не отправляете ракету в космос, то может оказаться, что задублировать вообще всё на свете просто не по карману вашей компании, но можно закрыть большинство рисков при сохранении относительно умеренного бюджета (а что и как делать - напрямую зависит от требований вашего бизнеса, его материальных возможностей и умений вашего персонала).

Насчёт "не кто из производителей RAid не хочет их полноценно подружить" - это не заговор производителей, а особенности или недостатки самой технологии обычных SSD со страничным доступом (грубо говоря, все SSD, которые "не Оптан").

Ну и советы инженеров по складыванию 12 SSD в единый массив, как основу мега-сервера, я бы воспринимал осторожно.
Сразу хочется задать вопрос: а в какой контроллер они воткнуты, какова его производительность (не захлебнётся ли контроллер потоком с дисков), и какова ширина шины этого контроллера, не будет ли контроллер узким местом?
800 тысяч иопс на чтении и 400 на записи с 12-ти дисков - это конечно хорошо, но вот например возьмём 1 (один) NVMe агрегат типа intel P4610, у которого паспортные спеки показывают чтение в 600-650 тысяч иопс и запись 210-220 тысяч с одного устройства. На базе таких агрегатов строить скоростные сервера будет не в пример веселее, особенно если объединить накопители в массив с помощью intel VROC.
Дмитрий Юхтимовский
 
Сообщений: 619
Зарегистрирован: 11 фев 2013, 19:28
Откуда: gilev.ru

Re: Выбор варианта настройки RAID для логов бд SQL Server

Сообщение Гилёв Вячеслав » 27 июн 2020, 19:42

Di8 писал(а):Вопрос: какой из двух вариантов будет предпочтительней для логов баз данных SQL Server: с кешированием или без? Мне кажется, что все-таки с кешированием операций записи.
Спасибо.

лучше но только если у вас делается бэкап, настроен ups
Гилёв Вячеслав
 
Сообщений: 2269
Зарегистрирован: 11 фев 2013, 15:40
Откуда: Россия, Москва


Вернуться в Осуждаем проблемы производительности 1с

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5