Каждый день мне приходится беседовать с пользователями SQL Server, и чаще всего мне задают один и тот же вопрос: как получить большую выгоду от SQL Server при меньших затратах? Я отвечаю, что секрет заметного снижения затрат при развертывании SQL Server прост: организуйте стек экземпляров.

Компания Microsoft разрешает пользователям организовать стек из 50 экземпляров для каждого сервера базы данных SQL Server. Однако большинство пользователей развертывают лишь один экземпляр на сервер. Это приемлемо, если у вас всего два или три экземпляра, но если их больше, то вы тратите деньги впустую. Пользователи, с которыми мне приходится общаться, обычно развертывают от 20 до 100 экземпляров, каждый на своем физическом или виртуальном сервере. Если каждый из этих экземпляров потребляет от 60 до 70% циклов процессора соответствующего хост-сервера, то модель развертывания «один экземпляр на сервер» оправданна, но на практике гак не бывает. В среднем большинство экземпляров потребляет лишь от 5 до 7% ресурсов процессора. В этой ситуации открываются большие возможности для экономии.

Посмотрим, сколько можно сэкономить, организовав стек экземпляров. Допустим, у нас имеется 50 экземпляров, каждый из которых размещается на собственном сервере и потребляет только 10% ресурсов процессора хост-сервера. Кроме того, предположим, что для серверов базы данных установлен буфер использования процессора — 30%. Таким образом, на каждом сервере размещается 7 экземпляров; иными словами, можно уменьшить число серверов базы данных на 84%, с 50 до 8 (см. экран).

Используя вариант модели совокупной стоимости владения SQL Server на одну виртуальную машину, представленный ранее (sqlmag.com/database-virtualization/virtualization- model-financial-trade-ofTs-virtual-os-environments), можно проанализировать затраты.

Мы указываем число экземпляров SQL Server, равное 50. Затем вводим уровень стека: число экземпляров, приходящихся на один физический узел. В данном случае уровень виртуализации 7, так как каждый экземпляр потребляет 10% ресурсов процессора сервера и нам нужен 30-процентный буфер использования процессора. Затем мы вводим число процессоров на узел, число ядер в одном процессоре и количество лет технической поддержки. В нашем примере это 2, 8 и 3 соответственно. Затем вы вводите свою лицензию SQL Server 2014 и затраты по программе Software Assurance (SA). Я использовал цены SQL Server 2014 SE, действовавшие на момент подготовки статьи (они могут меняться). Остальное — дело модели.

За трехлетний период организация стека экземпляров позволяет сэкономить 2,5 млн долл. «скрытых» лицензионных затрат SQL Server. Учитывая дополнительную экономию от менее масштабных обновлений оборудования и программных продуктов, а также сокращение административных расходов, выигрыш получается еше больше. Так почему же, несмотря на такую эффективность, пользователи на спешат организовать стеки экземпляров? Это станет темой моей следующей статьи.