我正在研究如何拆分我们的数据库服务器和应用程序服务器,并正在评估 Rackspace 和 Azure 提供的数据库服务器产品。我们是一个 Saas Web 应用程序,性能和未来增长的容量对我们来说很重要。
Rackspace 告诉我,拥有一台专用于 SQL Server 的机器对于性能非常重要,更重要的是操作系统和硬盘之间没有虚拟化层。换句话说,这是一种“裸机”配置。
Azure 的推广者说他们在作为物理机唯一租户的虚拟机上运行 SQL Server 没有任何问题,并且他们已经对此配置进行了微调,以获得比 Rackspace 通过其虚拟化层(显然是 VMWare)实现的更高的吞吐量(3-4 倍)。
Azure 便宜得多,而且在轻松扩展数据库方面似乎有更好的长期发展前景。有了虚拟化层,我是否能实现我想要的性能提升?谁在说实话?是否有任何性能统计数据或白皮书可供我进一步研究或比较。
答案1
好吧,SQL 在我的 1993 年 Compaq PC(33Mhz 和 4 MB RAM)上运行非常慢,但在具有 8 个 vCPU、64 GB RAM 和连接的 FC SAN 磁盘的 ESX 客户虚拟机上运行得很好。
所以,这取决于您的机器的规格。
在其他所有条件相同的情况下,裸机上的数据库服务器的性能将优于虚拟化服务器,但具体程度实际上取决于大量配置和使用模式 - 机器、操作系统和 SQL 服务器本身(而您没有提到任何这些)。获得准确答案的唯一真正方法是进行基准测试,这似乎会浪费很多钱来告诉您您已经知道的事情 - 虚拟化性能在某种程度上更差,主要决定因素是磁盘 I/O。(这就是 3-4 倍吞吐量数字的来源 - 通过虚拟化层进行的磁盘 I/O 可能比通过直接连接的驱动器慢 3-4 倍。)
这种差异到底有多大,实际上取决于“性能提升”,具体来说,您需要摆脱数据库服务器。您没有说,所以任何人都无法猜测您的性能需求到底是什么。如果没有可靠的性能指标可供分析,就不可能说出一种方式或另一种方式。无论您选择哪种方式,如果您想从一开始就构建它,您确实需要这些指标。
至于可扩展性,如今你可以从裸机箱中获得相当不错的 SQL 服务器可扩展性,这可能是需要考虑的事情……我敢打赌,你可以从中获得大量的 I/O 来为数据库提供服务其中之一,并且如果您正确地指定了基本服务器模型,那么添加额外的 CPU 或 RAM 或传统磁盘/附加存储应该不会有任何问题。
因此,实际上,这听起来像是您需要进行更多研究的顺序,至少在您确定任何解决方案之前,要了解您的要求(和资金限制)。