Может ли кто-нибудь помочь мне ответить на действительно простой вопрос, я надеюсь?
Предположим, у меня есть приложение, работающее с базой данных SQL Server, и я выполняю тесты производительности. Стоит ли ожидать повышения производительности при установке кластера серверов баз данных? Или это «просто» дает мне лучшее время безотказной работы и характеристики доступности с отработкой отказа и т. Д.?
Я склонен думать вторым, поэтому, если я чувствую, что производительность базы данных слабая, мне следует поработать над дизайном своего приложения, а не покупать дополнительное оборудование ...
С уважением, Эмиль
Нет, повышения производительности вы не увидите. Решение кластеризации на сервере MS SQL предназначено только для обеспечения высокой доступности, а не для масштабирования или балансировки нагрузки.
Вы можете настроить оба узла в кластере, чтобы они были активными одновременно, но тогда они будут обслуживать разные базы данных и по-прежнему «принимать» базы данных от другого узла только в случае сбоя.
Получение большей производительности от SQL-сервера, чем может обеспечить один-единственный сервер, - сложная проблема, и я рискну заявить, что независимо от вашего сценария, вы решите проблемы с производительностью своей базы данных с большим объемом оперативной памяти, более быстрые диски и путем настройки кода базы данных.
Вам потребуется общее хранилище (SAN / NAS), и оно, скорее всего, будет работать лучше, чем диски с прямым подключением, но кластер не работает лучше, чем автономный экземпляр. Кластер исключительно для снижения риска аппаратного сбоя.
Это очень сильно зависит от того, как настроен ваш кластер и как к нему обращаются. Не помогает то, что слово «кластер» может охватывать несколько различных договоренностей.
Некоторые аранжировки будут иметь очень слабое влияние, некоторые заметно замедлят работу (например, несколько активных серверов, когда транзакция требует обновления всех серверов, прежде чем она будет считаться зафиксированной, что может добавить значительную задержку транзакции для операций, которые включают вставки / обновления, а также маршалинг информации о блокировке между серверами может повлиять на чтение -только операции аналогично), и некоторые договоренности могут ускорить процесс (несколько реплик только для чтения для обработки нагрузки только для чтения на нескольких машинах, например, при наличии требований блокировки).
Итак: да, нет или может быть! Если вы подробно опишете свою аранжировку [машины, ОС, СУБД, конфигурация кластера, какой код обращается к кластеру (один веб-сервер, множество веб-серверов, множество внешних клиентов, ...), шаблоны загрузки, ...] вы могли бы получить гораздо лучший ответ.
(так что, к сожалению, это не такой простой вопрос, как вы надеялись, извините!)