我们使用机器学习技术将英文博客翻译为简体中文。您可以点击导航栏中的“中文(简体)”切换到英文版本。
比较 Babelfish 新版本的性能并将 Babelfish 的性能与 SQL Server 进行比较
在这篇博客文章中,我将比较
1。简介
适用于 Aurora PostgreSQL 的 Babelfish 是亚马逊 Aurora P
今年,我们推出了
Babelfish 不断成熟并提供更多特性和功能,因此,它正在增加 Babelfish 上兼容的 SQL Server 工作负载的数量。越来越多的 亚马逊云科技 客户
除了新的特性和功能外,现有的Babelfish客户还有兴趣了解升级到最新版本的Babelfish可以带来什么样的性能提升。同样,计划将其SQL Server工作负载迁移到Babelfish的客户想知道与Babelfish相比,他们在SQL Server上的性能会如何。为了回答这些问题,我按照博客文章《为 A
2。Babelfish 基准测试场景
在本节中,我将回顾用于测试的数据库设置、选择特定实例类型来部署 SQL Server 和 Babelfish 集群的原因,以及选择工作负载级别的指南。我还将介绍用于比较的性能指标的选择以及如何确定每种测试配置的性能水平。
2.1。设置用于基准测试的数据库
我将使用
2.2。选择要测试的实例类型
由于 SQL Server 不支持
2.3。选择用于基准测试的虚拟用户数量
HammerDB 虚拟用户是对数据库进行压力测试的模拟用户。要估计系统的最大性能,最好从几个虚拟用户开始,然后逐渐增加数量,直到数据库达到其最高性能水平。当我们增加虚拟用户数量(代表系统负载)时,性能指标
随着数据库接近饱和点,虚拟用户数量的增加导致 SQL Server 性能的提高幅度较小。因此,在HammerDB基准测试系列中,我设置了虚拟用户的数量以几何级数递增。对于较小的实例,我使用了 256 、 362 、 512 和 724 个 虚拟用户的集合,对于较大的实例,我将其扩展到了 256 、 362 、 512 、 724 和 1024 个 虚拟用户。
通常,
2.4。选择绩效指标
HammerDB 报告了两个绩效指标:
除了比较 Babelfish 不同版本的性能外,我还想在 SQL Server 和 Babelfish 之间建立性能比较。我选择了 NOPM 作为衡量标准,用于测试运行的性能比较。
2.5。确定每种测试配置的性能
为了获得统计上稳定的结果,对于每个 Aurora 集群配置和 SQL Server 部署(参见第 2.2 节),我使用第 2.3 节中定义的虚拟用户数量在不同的工作负载级别下进行了一系列性能测试。我重复了每项测试 3 次,并得出了相同工作量水平下的平均结果。
对于每种测试配置,我将性能定义为每个相应场景达到的最大性能水平。例如,图 1 显示了 Babelfish 在配置有 d b.r6i.8xlarge 实例的 Aurora 集群上进行性能测试的结果。此图表上的每个点都是 3 次测试运行的平均值。
图 1。Babelfish 上有 10,000 个仓库 HammerDB 数据库的 r6g.8xlarge 性能测试结果。
在这种情况下,对于包含10,000个仓库的HammerDB数据库,Babelfish在512个虚拟用户的负载水平上达到了最佳性能。因此,我接受 512 个虚拟用户的 NOPM 值作为该集群的 Babelfish 性能。当为集群使用更强大的实例时,Babelfish 和 SQL Server 可能会在与更多虚拟用户相对应的负载级别上达到最佳性能。
3。比较 Babelfish 版本 3.1 和 3.2(以及 2.4)的性能
测试是使用不同大小和处理器架构的实例进行的,结果按实例大小分组。
3.1。8 倍大实例
在此类别中,我将重点介绍按处理器架构分组的 8xlarge 类别 中的实例之间的比较。该组的性能测试结果如表 1 所示。
表 1. 8xL arge 实例的性能测试结果
根据表 1 中的数据,对于选定的实例,Babelfish 3.2 与之前的版本相比提供了大约 3% 的 性能优势。
3.2。12 倍大实例
在此类别中,我将重点比较按处理器系列分组的 12xlarge 类别中的实例。对于这组测试,我可以用我的博客文章《
现在,我们可以将 Babelfish 版本 3.1 和 3.2 获得的性能结果与 Babelfish 2.4 的早期结果进行比较。表 2 记录了我当前的测试结果以及上一篇博客文章中对 Babelfish 2.4 的调整结果:
表 2. 12xL arge 实例的性能测试结果
如表 2 所示,随后的每个 Babelfish 版本都表现出更好的性能。而且,对于基于Graviton-2处理器的Babelfish集群来说,Babelfish的性能提升似乎更为可观。
3.3。16 倍大实例
该组代表基于 16 xlarge 实例的 Babelfish 集群获得的测试结果。对于 Babelfish 2.4,我使用了之前博客文章中的调整后的性能数据。表 3 显示了该组的性能测试结果:
表 3.16xlarge 实例的性能测试结果
如表 3 所示,与旧版本相比,较新的 Babelfish 版本提供了显著的性能提升。
3.4。Babelfish 3.2 性能和性价比分析
根据测试,我们已经确定 Babelfish 表现最好的版本是 3.2 版本。 现在,让我们重点比较基于 Graviton-2 ( R6g ) 和英特尔 (R6i ) 实例的集群的性能。 相应的性能数据如表 4 所示:
表 4性能对比 — 基于英特尔的实例与 Graviton-2 的实例。
从性能比较来看,使用基于英特尔的实例的 Babelfish 集群的表现比使用基于 Graviton-2 的实例的相对规模的集群高出 3.5% 至 8.5%。
现在让我们看看不同大小的 Babelfish 集群和底层 Amazon EC2 实例之间的性能差异如何转化为每 1,000 NOPM 的成本。所有用于性能测试的 Babelfish 集群均使用
由于所有测试数据库的大小都约为 1 TB,因此我使用了具有 1.3 TB 存储空间的 Aurora I/O 优化定价模型来估算成本。这些估计是针对
表 5.Babelfish 3.2 性价比分析。
值得注意的是,尽管性能存在显著差异,但在相同的计算机架构中,Aurora I/O 优化的 Babelfish 集群每千个 NOPM 的成本是稳定的。基于英特尔的集群可以提供更好的 Babelfish 性能,但每 1,000 NOPM 的成本更高。
4。将 SQL 服务器性能与 Babelfish 3.2 进行比较
Amazon EC2 提供了
在本次分析中,我选择了专门
4.1。比较部署在 R6i.8xLarge 上的 SQL Server 与 Babelfish 3.2
R6i.8xLarge 实例提供 32 个 vCPU 和 256 GB 内存,最多可支持 40,000 次 IOPS。为了充分利用此实例的功能,我在 Windows Server 2022 上部署了 SQL Server 2022 企业版。我为这个实例配置了 1.3 TB 的
HammerDB 测试数据库和 SQL Server 是按照 HammerDB 基准测试的
表 6. 适用于 8xlarge 实例的 SQL Server 和 Babelfish 3.2 的 NOPM 性能指标。
图 2 中的图表以图形形式表示表 6 中的数据。通过这些测试,Babelfish 3.2 提供了比 SQL Server 更好的性能。
图 2。 适用于 8xlarge 实例的 SQL Server 和 Babelfish 3.2 的 NOPM 性能指标。
有了既定的性能特征,让我们来看看相应解决方案的成本。为了估算 SQL Server 部署的成本,我使用了
表 7成本和性价比摘要
Babelfish 不仅降低了每 1,000 个 NOPM 的成本,而且总体部署成本也降低了多达 70%。
4.2。比较部署在 R6i.12xLarge 上的 SQL Server 与 Babelfish 3.2
下一步是对部署在 R6i. 12xLarge 实例上的 SQL Server 运行性能测试。此实例提供 48 个 vCPU 和 384 GB 内存,在与亚马逊 EBS 存储卷通信时支持 60,000 次 IOPS。与前一组测试中使用的 R6i.8xLarge 实例相比,每个功能参数都 增加了 50%。因此,SQL Server 的性能水平是在 R6 i.8xLarge 上达到的两倍也就不足为奇了。相关测试运行的结果如表 8 和图 3 中的图表所示:
表 8在可比实例上,SQL Server 12xlarge 和 Babelfish 3.2 的 NOPM 性能指标。
图 3。在可比实例上,SQL Server 12xlarge 和 Babelfish 3.2 的 NOPM 性能指标。
部署在 R6g.12xLarge 和 R6i.12xLarg e 实例上的 Babelfish 集群表现出良好的性能水平,但无法与 SQL Server 提供的性能水平相提并论。部署在大一步的实例上的 Babelfish 集群能够表现出相同或更高的性能水平。
就这些配置的总体成本和性价比而言,相关数据如表 9 所示:
表 9成本和性价比摘要
即使将 Babelfish 集群升级到更大的实例大小以匹配或超过 SQL Server 性能,Babelfish 部署的总体成本也 降低了多达 60% ,性价比也更高。
结论
根据本博客文章中提供的结果,我们可以得出以下两个结论:
1。Babelfish 版本 3.2 的性能优于之前发布的 Babelfish 版本。因此,如果您当前在 Babelfish 的早期版本上运行数据库工作负载,则升级部署是有意义的,特别是考虑到升级
2。如果您的 SQL Server 工作负载与 Babelfish 兼容或可以与 Babelfish 兼容,则迁移到 Babelfish 将以低得多的成本为您提供相同或更好的性能,并使您摆脱许可要求。
如果你认为 Babelfish 可以满足你的功能和性能需求,并想将你的 SQL Server 工作负载迁移到 Babelfish,请阅读我们的 Auror
与任何其他云提供商相比,亚马逊云科技 提供的服务和这些服务中的功能要多得多,这使得将现有应用程序迁移到云端并构建几乎可以想象的任何东西变得更快、更容易、更具成本效益。为你的 Microsoft 应用程序提供所需的基础架构,以推动你想要的业务成果。访问我们的
*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您发展海外业务和/或了解行业前沿技术选择推荐该服务。