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

Откуда:
Сообщений: 88
Изучаем вопрос переноса баз данных на Azure.

По-тестировали чуть-чуть на простейших планах - убедились что производительность никакая и нужно разбираться с тем сколько нам нужно реально DTU.

Порыли интернеты и нашли не слишком старый разговор: http://stackoverflow.com/questions/32420311/azure-sql-database-vs-ms-sql-server-on-dedicated-machine. Суть которого примерно в том, что сменив физический сервер на в три раза более дорогой план Azure, человек потерял треть производительности. Как-то пугающе.

Нашли тулсу: http://dtucalculator.azurewebsites.net/
Собрали статистику на нашем сервере в разное время и получили что наш сервер обрабатывает 1000-1500 DTU в спокойном состоянии и 2000-2500 в моменты ежедневных пиков. Причем даже в моменты пиков сервер не загружен даже на треть возможностей.

Сервер у нас ничего особенно на самом деле: 2x Intel Xeon (16 физических ядер), 64Gb, физический RAID (НЕ SSD).

На сервере 5 десятков баз, но по большей части нагрузка идет только на три из них (причем одна из баз отжирает 60% нагрузки сервера) Грубо, по косвенно статистике приложения можно прикинуть сколько DTU отходит на каждую базу.

Засада заключается в том, что у нас несколько раз в год бывают продолжительные моменты (до нескольких дней), когда на определенную базу сваливается нагрузка в разы привышающая, даже ежедневные пики. Похоже, что в такие моменты, для этой базы, нам нужно до 3000 DTU и... у Azure просто нету таких планов. Максимум P11 c 1750.

И как быть?

Не говоря уже о том что разбросав наши базы между базами и пулами Azure c прицелом на сохранение текущей производительности за минимальную цену ( т.е. забив на показатели ежедневных пиков) мы получили $6000 в месяц :(

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

Чего мы не понимаем? Может чего-то делаем не так?

P.S. Да, конечно, если добавить цену лицензии Enterprice Edition, и признать что для нормального failover нужен еще один такой же сервер с такой же лицензией, то цена выглядит уже более менее... терпимо, но во-первых Azure все еще имеет кучу ограничений сравнимо с полноценным сервером, а во вторых вопрос с производительностью это не снимает.
9 мар 16, 17:16    [18912248]     Ответить | Цитировать Сообщить модератору
 Re: Azure SQL Database и DTU  [new]
churupaha
Member

Откуда: Краснодар
Сообщений: 1015
alexei_k,

когда пользовались калькулятором включали ли в Log Bytes Flushed/sec для базы еще и Log Bytes Flushed/sec для temdb? а включите! (активность по tempdb влияет на на показатель LOG IO %).

вы не одиноки. и ни в коем случае не считайте, что DTU - линейная велечина. если вы перейдете например с S3 на P1, процессорная нЕмощность будет тойже, изменится только IO и т. п. идеально, если ваша база допускает разбиение, тогда можно наклепать кучу баз подешевле.

посмотрите, как все уныло c IO/CPU/MEMORY https://cbailiss.wordpress.com/2015/01/31/azure-sql-database-v12-ga-performance-inc-cpu-benchmaring/.

завтра тож тестить буду.
9 мар 16, 23:16    [18913217]     Ответить | Цитировать Сообщить модератору
 Re: Azure SQL Database и DTU  [new]
churupaha
Member

Откуда: Краснодар
Сообщений: 1015
еще, вы как замеряли счетчики? тупо по всем базам сразу? сначала тоже так делал.

потом настроил мирроринг на второй неиспользуемый сервер. перебил connectionstring'и failover partner = ... переключил туда базу, чтобы она там одна была (даунтайм секунды). и на этом втором сервере собирал счетчики и так по каждой базе. обязательно соберите Log Bytes Flushed/sec по tempdb и сложите с соответствующими показаниями по важей юзерской базе.

тут ееще почитайте есть много инфы но все описывать чето некогда. с форума почти исчез.
9 мар 16, 23:23    [18913229]     Ответить | Цитировать Сообщить модератору
 Re: Azure SQL Database и DTU  [new]
churupaha
Member

Откуда: Краснодар
Сообщений: 1015
c Elastic Pool'ом аккуратно. он в preview (был по крайней мере). я его удалил после тестов на тестовой подписке. но он продолжал жрать несколько дней подряд деньги. еще люди пишут, когда используются preview фишки например как SQL Data Sync (пародия на репликацию), support потом не шибко помогает ссылаясь на preview.
9 мар 16, 23:26    [18913238]     Ответить | Цитировать Сообщить модератору
 Re: Azure SQL Database и DTU  [new]
churupaha
Member

Откуда: Краснодар
Сообщений: 1015
churupaha
... https://cbailiss.wordpress.com/2015/01/31/azure-sql-database-v12-ga-performance-inc-cpu-benchmaring/.
...


по этой ссыли инфа устарела. многое изменилось особенно на premium'е
11 мар 16, 18:42    [18921334]     Ответить | Цитировать Сообщить модератору
 Re: Azure SQL Database и DTU  [new]
alexei_k
Member

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

большое спасибо за информацию и ссылки.

Да, мы мерим тупо по всем базам стразу. Настроить базу отдельно на отдельном сервере с нормальной конфигурацией нету возможности. С резервным сервером тестироваться не дают: мотивируют это тем, что он в "пассивном моде" без лицензии, и в соответствии с лицензионным соглашением делать с ним ничего нельзя :)

Но я не думаю, что картинка будет существенно отличаться, если вынести одну базу на отдельный сервер. Вопрос только в том, насколько можно верить тому что показывает этот dtucalculator.

Потому что если верить этому инструменту можно, то Azure не выдерживает никакой критики ни по цене ни по производительности: двух-серверное решение на основе 8-и ядерных CPU, SSD и Enterprise Edition лицензии (в которой и будет 80% цены), будет вдвое быстрее P11 и при этом существенно дешевле. А если лицензии по-проще хватает, то там совсем за гранью добра и зла получается.
14 мар 16, 09:51    [18926814]     Ответить | Цитировать Сообщить модератору
 Re: Azure SQL Database и DTU  [new]
churupaha
Member

Откуда: Краснодар
Сообщений: 1015
alexei_k
churupaha,

большое спасибо за информацию и ссылки.

Да, мы мерим тупо по всем базам стразу. Настроить базу отдельно на отдельном сервере с нормальной конфигурацией нету возможности. С резервным сервером тестироваться не дают: мотивируют это тем, что он в "пассивном моде" без лицензии, и в соответствии с лицензионным соглашением делать с ним ничего нельзя :)

Но я не думаю, что картинка будет существенно отличаться, если вынести одну базу на отдельный сервер. Вопрос только в том, насколько можно верить тому что показывает этот dtucalculator.

Потому что если верить этому инструменту можно, то Azure не выдерживает никакой критики ни по цене ни по производительности: двух-серверное решение на основе 8-и ядерных CPU, SSD и Enterprise Edition лицензии (в которой и будет 80% цены), будет вдвое быстрее P11 и при этом существенно дешевле. А если лицензии по-проще хватает, то там совсем за гранью добра и зла получается.


на p11 примерно такая картина:

объем буфферного кэша 45Gb (на p6 - 52Gb)
log write 100% при 42 Mb/sec
data read 100% при 11Gb/sec
cpu там 8 ядер (есть сравнительная во сколько он медленнее процессора, модель забыл)
15 мар 16, 00:21    [18931325]     Ответить | Цитировать Сообщить модератору
 Re: Azure SQL Database и DTU  [new]
churupaha
Member

Откуда: Краснодар
Сообщений: 1015
alexei_k,

калькулятору можно верить. запилил себе таблицу по каждому тарифу, что там и как mem/cpu/io... прикинул к таблице нашу нагрузку по базе, которую хотели в azure, все очень похоже на то что показал кулькулятор.

признаться такая жесть с этими замерами. могли бы и вьюху с характеристиками запилить. чтобы люди время не тратили чего скрывать то. я понимаю что база как сервис и пользователям знать не нужно и т. п.. но хочется знать за что они шекели берут.
15 мар 16, 00:26    [18931339]     Ответить | Цитировать Сообщить модератору
 Re: Azure SQL Database и DTU  [new]
churupaha
Member

Откуда: Краснодар
Сообщений: 1015
alexei_k
Но я не думаю, что картинка будет существенно отличаться, если вынести одну базу на отдельный сервер.


а вы исключили бэкапы/репликацию/всякие технические штуки и т. п..? бэкапы в ожуре не учитуются в data io%, log io %
15 мар 16, 00:35    [18931354]     Ответить | Цитировать Сообщить модератору
 Re: Azure SQL Database и DTU  [new]
Андрей Таранов
Member

Откуда: оттуда
Сообщений: 150
лучше пересмотреть модель данных вместе с переездом на Azure

попробуйте table/index compression, partitions и тп
также учитывайте ситуации\схемы когда можно переключиться на другой pricing tier для тяжелой обработки и потом scale back
если баз много - хорошо помогает database pool с хорошим планировщиком нагрузки и тп

также посмотрите на SQL Server Ent VM - данные можно хранить в Blob (помоему до 16 Blob's сразу)

мне удалось поднять скорость IO до довольно высоких величин
17 мар 16, 00:11    [18940984]     Ответить | Цитировать Сообщить модератору
 Re: Azure SQL Database и DTU  [new]
churupaha
Member

Откуда: Краснодар
Сообщений: 1015
Андрей Таранов
...


та речь больше о цене. а по поводу IO - на высоких тарифах скорость чтения высокая (на P11 - 11Gb/s)... а по записи ограничение в 41 MB/s на P11 возможно связано с максимальной скоростью наката логов в always on groups (который и есть active geo replication), а так как они гарантируют время отставания реплики на различных service tier не более чем N, то не могут позволить себе большого отставания... db as service же.

насчет elastic pool'а и elastic job'ов - они в preview...
17 мар 16, 00:35    [18941021]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить