SQL Server群集性能

SQL Server群集性能

有人能帮我回答这个我希望非常简单的问题吗?

假设我有一个针对 SQL Server 数据库运行的应用程序,并且我正在运行性能测试。如果我设置数据库服务器集群,我是否应该期望性能得到改善?或者这是否“仅仅”为我带来了更好的正常运行时间和可用性特性以及故障转移等?

我倾向于后者,所以如果我觉得数据库性能较弱,我应该改进我的应用程序设计而不是购买额外的硬件......

问候,埃米尔

答案1

这很大程度上取决于集群的配置和访问方式。“集群”一词可以涵盖多种不同的安排,这毫无帮助。

一些安排将产生很小的影响,一些安排将明显减慢速度(例如多个活动服务器,事务需要等待所有服务器更新后才被视为已提交,这可能会增加包括插入/更新在内的操作的事务延迟,服务器之间编组锁定信息也会类似地影响只读操作),而一些安排可能会加快速度(例如,多个只读副本将只读负载分散到多台机器上,锁定要求允许)

所以:是、否或可能!如果您详细描述您的安排[机器、操作系统、DBMS、集群配置、哪些代码访问集群(单个 Web 服务器、多个 Web 服务器、多个外部客户端,...),负载模式,...],您可能会得到更好的答案。

(不幸的是,这个问题并不像你希望的那么简单,抱歉!)

答案2

不,您不会看到任何性能提升。MS SQL 服务器中的集群解决方案仅用于高可用性,而不是用于扩展或负载平衡。

您可以将集群中的两个节点设置为同时处于活动状态,但它们将提供不同的数据库服务,并且如果另一个节点发生故障,仍只会“接管”另一个节点的数据库。

从 SQL 服务器获得比单个服务器更高的性能是一个复杂的问题,我将冒险声称,无论您的情况如何,您都可以使用更多的 RAM、更快的磁盘以及调整数据库代码来更轻松地解决数据库性能问题。

答案3

您必须拥有共享存储 (SAN/NAS),其性能很可能优于直接连接磁盘,但集群的性能并不优于独立实例。集群仅用于降低硬件故障风险。

相关内容