Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как грамотно распилить пропускную способность дисковой подсистемы на три виртуалки  [new]
uaggster
Member

Откуда:
Сообщений: 811
Коллеги, приветствую!
Встала следующая проблема:
Имеется шасси HP Proliant GEN10, на которой взведен Hyper-V 2012R2.
Контроллер используется встроенный, P816i-a SR Gen10, диски - 10 Х 8Тб 7200 SAS, организованы в RAID10, одним логическим томом. (под систему - свои диски).
Файлы виртуальных машин - лежат на этом томе.
В качестве гостевых - 1 Windows Server 2008 Server и 2 Windows Server 2012R2, на которых установлен (соответственно) SQL SERVER Standard 2005, SQL SERVER Standard 2014SP2, SQL SERVER Standard 2016 SP1 (так исторически сложилось). На одном сервере их разместить нельзя, т.к. приложения не умею нормально работать с инстансами.
Как грамотно ограничить полосу пропускания для каждой из виртуальных машин, чтобы они не сжирали весь диск?

Для приложений, которые обслуживают сервера, характерна нагрузка "хаотическая модификация по 1 записи кучи таблиц 1000 раз в секунду", т.е. это классические OLTP. Но нагрузка не постоянная, а судорожно-периодическая. Бывают шторма, когда все 3 sql-я загружены, бывает - полный штиль.

Я так понимаю, что производительность виртуальной машины нужно ограничить снизу, но не ограничивать сверху.
И сколько iops при этом нужно поставить?
Я воспользовался вот этой штукой http://www.team.ru/RAID-IOPS-Calculator.php , чтобы примерно оценить, на что мне стоит надеяться.
Там в точности такого оборудования нет, но я думаю, что для оценки использовать можно.
Для RAID10 получилось порядка 1200 iops.
Я собираюсь перемерять производительность хост-системы SQLIO, но тут дело не в точных цифрах, а, скорее, в методике.

Т.е. вот цифру а получил, а дальше то что? Где лошадь припрагается?
Нарезать каждому из виртуальных серверов снизу 400, сверху 0 и всё?

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

Подскажите, куды бечь? Это не совсем моя тема!
26 фев 18, 17:00    [21219562]     Ответить | Цитировать Сообщить модератору
 Re: Как грамотно распилить пропускную способность дисковой подсистемы на три виртуалки  [new]
KRS544
Member

Откуда:
Сообщений: 497
uaggster,

правильно я понимаю, что выдавая 400IOPS для каждого сервера вы надеетесь что в итоге они при пиковой нагрузке дадут 1200 на RAID и типа все будут ok. И это при том что у вас по сути SATA диски (судя по 7200)?
26 фев 18, 17:32    [21219666]     Ответить | Цитировать Сообщить модератору
 Re: Как грамотно распилить пропускную способность дисковой подсистемы на три виртуалки  [new]
архивариус
Member

Откуда:
Сообщений: 150
uaggster
характерна нагрузка "хаотическая модификация по 1 записи кучи таблиц 1000 раз в секунду", т.е. это классические OLTP.
надо конкретизировать, imho, иначе если подходить "в лоб" то получается 3 сервера умножаем на 1000 iops = 3000 iops на запись в пике это много для 10 дисков 7200RPM SAS, а может еще и на кучу таблиц всё это умножить... (для 10 15000)
26 фев 18, 17:56    [21219747]     Ответить | Цитировать Сообщить модератору
 Re: Как грамотно распилить пропускную способность дисковой подсистемы на три виртуалки  [new]
архивариус
Member

Откуда:
Сообщений: 150
архивариус,

не дописал: для 10 hdd 15000rpm raid10 я бы ориентировался на 1000 iops при профиле нагрузки 20% read 80% write (OLTP)
26 фев 18, 17:58    [21219753]     Ответить | Цитировать Сообщить модератору
 Re: Как грамотно распилить пропускную способность дисковой подсистемы на три виртуалки  [new]
a_shats
Member

Откуда: Москва
Сообщений: 814
uaggster,

С дисков 7.2К об/мин SAS ожидайте 100 IOps с каждого на реальной нагрузке не из кэша.
И хоть 100500 виртуалок на них накладите - больше они не дадут, потому, что не могут.
От SATA 7.2К они отличаются только интерфейсом.
26 фев 18, 17:58    [21219754]     Ответить | Цитировать Сообщить модератору
 Re: Как грамотно распилить пропускную способность дисковой подсистемы на три виртуалки  [new]
uaggster
Member

Откуда:
Сообщений: 811
KRS544
uaggster,

правильно я понимаю, что выдавая 400IOPS для каждого сервера вы надеетесь что в итоге они при пиковой нагрузке дадут 1200 на RAID и типа все будут ok. И это при том что у вас по сути SATA диски (судя по 7200)?

Ну, в общем то да.
Диски SAS, вот такие примерно:
Жесткий диск 8TB SAS 12Gb/s HGST HUH721008AL5204 (ссылку не буду приводить, чтобы не сочли за рекламу сторонних ресурсов).
27 фев 18, 07:51    [21220603]     Ответить | Цитировать Сообщить модератору
 Re: Как грамотно распилить пропускную способность дисковой подсистемы на три виртуалки  [new]
uaggster
Member

Откуда:
Сообщений: 811
a_shats
uaggster,

С дисков 7.2К об/мин SAS ожидайте 100 IOps с каждого на реальной нагрузке не из кэша.
И хоть 100500 виртуалок на них накладите - больше они не дадут, потому, что не могут.
От SATA 7.2К они отличаются только интерфейсом.

Это я понимаю.
Мне нужно, чтобы в случае шторма, всё это не заткнулось совсем, а продолжало работать с максимальной производительностью, которую можно выжать из дисковой подсистемы.

Т.е. да, производительности дисковой подсистемы для нормальной работы всех трех серверов - не хватит.
Но что нужно сделать, чтобы выжать максимум из существующей ситуации?
27 фев 18, 08:01    [21220607]     Ответить | Цитировать Сообщить модератору
 Re: Как грамотно распилить пропускную способность дисковой подсистемы на три виртуалки  [new]
Гигабайт Мегабайтович Килобайтов
Member [заблокирован]

Откуда:
Сообщений: 5975
как не пародоксально - но таки прикупить новый сервер. ))
А так - писать докладную записку на имя начальников, о том, что текущие железо не обеспечивает нормального функционирования приложений. После этого ставить всем всё "одинаково", а на все вопросы про производительность - отправлять к начальству.
27 фев 18, 10:11    [21220868]     Ответить | Цитировать Сообщить модератору
 Re: Как грамотно распилить пропускную способность дисковой подсистемы на три виртуалки  [new]
a_shats
Member

Откуда: Москва
Сообщений: 814
uaggster,

Насколько я помню, это шасси (DL380 Gen10 с 8х 3.5") апгрейдится аж несколькими корзинками под 2.5" диски.
Вот взять одну или две в зависимости от варианта накопителей этих корзинки, и вкрячить туда - если найдется денег, то пару SSD в RAID1, а если денег мало - то хотя бы хардов 10К об/мин штуки 4 в RAID10. И вот на это положить SQL, а 8ТБ NearLine SAS диски использовать по их прямому назначению - под файлопомойку и бэкапы.
27 фев 18, 11:31    [21221190]     Ответить | Цитировать Сообщить модератору
 Re: Как грамотно распилить пропускную способность дисковой подсистемы на три виртуалки  [new]
uaggster
Member

Откуда:
Сообщений: 811
a_shats
uaggster,

Насколько я помню, это шасси (DL380 Gen10 с 8х 3.5") апгрейдится аж несколькими корзинками под 2.5" диски.
Вот взять одну или две в зависимости от варианта накопителей этих корзинки, и вкрячить туда - если найдется денег, то пару SSD в RAID1, а если денег мало - то хотя бы хардов 10К об/мин штуки 4 в RAID10. И вот на это положить SQL, а 8ТБ NearLine SAS диски использовать по их прямому назначению - под файлопомойку и бэкапы.

Да не поможет. Там 4 базы по 6-8 Тб. Они не влезут просто на то, что вы описываете. Поэтому - что есть, то есть.
И хорошо, хоть так есть.
27 фев 18, 14:55    [21222121]     Ответить | Цитировать Сообщить модератору
 Re: Как грамотно распилить пропускную способность дисковой подсистемы на три виртуалки  [new]
Konst_One
Member

Откуда:
Сообщений: 11517
ну хоть tempdb на эти диски вынесите и то профит будет
27 фев 18, 15:02    [21222145]     Ответить | Цитировать Сообщить модератору
 Re: Как грамотно распилить пропускную способность дисковой подсистемы на три виртуалки  [new]
tunknown
Member

Откуда:
Сообщений: 759
uaggster
Файлы виртуальных машин - лежат на этом томе.

Если сделать pass-through-диск вместо VHD, вероятно, будет полегче.
27 фев 18, 15:16    [21222210]     Ответить | Цитировать Сообщить модератору
 Re: Как грамотно распилить пропускную способность дисковой подсистемы на три виртуалки  [new]
rahzer
Member

Откуда:
Сообщений: 2288
Попробовать 2 диска выделить в отдельный рэйд и на них положить логи с трех виртуалок - запись последовательная, основные диски не так дергаться будут.
Добавить парочку дисков на 10к - они есть на 1,8ТБ и положить туда ТемпДБ, как вариант поставить SSD, добавить лицензию на кеширование и в таком режиме запустить.
27 фев 18, 17:53    [21223018]     Ответить | Цитировать Сообщить модератору
 Re: Как грамотно распилить пропускную способность дисковой подсистемы на три виртуалки  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7671
Лучшие практики требуют выделения физических дисков для виртуальных машин под SQL.
27 фев 18, 18:25    [21223130]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить