本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为SQL服务器工作负载选择合适的EC2实例
重要
在阅读本节之前,我们建议您先阅读本指南的 “了解SQL服务器许可” 和 “为 Windows 工作负载选择正确的实例类型” 部分。
概述
Microsoft SQL Server 已在亚马逊弹性计算云 (AmazonEC2) 实例上运行超过 15 年。 AWS 借鉴了这种经验,并利用它来帮助开发 Amazon EC2 实例,以适应从最低规格一直运行到高性能、多区域集群的SQL服务器工作负载。
为SQL服务器选择正确的EC2实例在很大程度上取决于您的工作负载。了解 SQL Server 是如何获得许可的、它如何使用内存以及SQL服务器功能如何与 Amazon EC2 产品保持一致,可以帮助您找到最适合您的应用程序的EC2实例。
本节介绍各种SQL服务器工作负载,以及如何将它们与某些EC2实例配对,以将许可和计算成本降至最低。
成本比较
亚马逊EC2允许您自带许可证 (BYOL) 或使用 Windows 服务器和SQL服务器许可按需付费。对于 pay-as-you-go许可,Windows Server 和 Ser SQL ver 许可证的许可成本包含在EC2实例的每小时成本中。例如,您可以选择不同的价格AMIs和不同的价格。的价格取决于AMI其AMI运行的SQL服务器版本。
未逐项列出 Windows SQL 服务器和服务器的定价。您找不到诸如此类的工具的逐项定价。AWS Pricing Calculator
EC2实例 | AMI | 计算价格 | Windows 许可证价格 | SQL许可证价格 | 总价格 |
---|---|---|---|---|---|
r5.xlarge | Linux(计算定价) | 183.96 美元 | - | - | 183.96 美元 |
r5.xlarge | Linux + SQL 开发人员 | 183.96 美元 | $0 | $0 | 183.96 美元 |
r5.xlarge | Windows 服务器 (LI) | 183.96 美元 | 134.32 美元 | - | 318.28 美元 |
r5.xlarge | Windows + SQL 开发人员 | 183.96 美元 | 134.32 美元 | $0 | 318.28 美元 |
r5.xlarge | Windows + SQL Web (LI) | 183.96 美元 | 134.32 美元 | 49.64 美元 | 367.92 美元 |
r5.xlarge | Windows + SQL Standard (LI) | 183.96 美元 | 134.32 美元 | 350.4 美元 | 668.68 美元 |
r5.xlarge | Windows + SQL 企业版 (LI) | 183.96 美元 | 134.32 美元 | 1095 美元 | 1413.28 美元 |
注意
上表中的定价基于该us-east-1
地区的按需定价。
运行 SQL Server 的最具成本效益的方法是保持较低级别的版本,直到需要更高级别版本的功能。有关更多信息,请参阅本指南的 “比较SQL服务器版本” 部分。从SQL服务器 Web 版升级到SQL服务器标准版的费用是SQL服务器许可成本的七倍多,是从标准版升级到企业版的成本的三倍多。许可成本的差异是需要考虑的主要因素,本节的其余部分将对此进行探讨。
成本优化场景
以一个示例场景为例,一家跟踪送货车辆的分析公司正在寻求提高其SQL服务器性能。在MACO专家审查了公司的性能瓶颈之后,该公司从 x1e.2xlarge 实例过渡到 x2iedn.xlarge 实例。尽管实例大小较小,但对 x2 实例的增强通过使用缓冲池扩展来提高SQL服务器性能和优化。这使该公司能够从 SQL Server Enterprise 版降级到SQL服务器标准版,并将SQL服务器许可从 8 个减少 vCPUs 到 4 个vCPUs。
优化前:
Server | EC2实例 | SQL服务器版 | 月度成本 |
---|---|---|---|
Prod DB1 | x1e.2xlarge | 企业 | 3,918.64 美元 |
Prod DB2 | x1e.2xlarge | 企业 | 3,918.64 美元 |
总计 | 7,837.28 美元 |
优化后:
Server | EC2实例 | SQL服务器版 | 月度成本 |
---|---|---|---|
Prod DB1 | x2iedn.xlarge | Standard | 1,215.00 美元 |
Prod DB2 | x2iedn.xlarge | Standard | 1,215.00 美元 |
总计 | 2,430.00 美元 |
从 x1e.2xlarge 实例到 x2iedn.xlarge 实例的合并更改使示例客户能够每月在生产数据库服务器上节省 5,407 美元。这使工作负载的总成本降低了 69%。
注意
上表中的定价基于该us-east-1
地区的按需定价。
成本优化建议
内存优化型实例
SQLServer 最重要的方面之一是了解其对内存的依赖。SQL服务器尝试使用操作系统RAM未使用的所有可用空间(默认安装最多为 2 TB)。它这样做是出于性能原因。处理内存中的数据比经常从磁盘中提取数据、进行更改然后将其写回磁盘要高得多。相反,SQLServer 会尝试从连接的数据库中加载尽可能多的数据,并将这些数据保存在其中RAM。对数据所做的更改发生在内存中,稍后会硬化到磁盘。
注意
有关SQL服务器如何写入更改的详细说明,请参阅 Microsoft 文档中的编写页面
由于 SQL Server 在容量较大时性能更好RAM,因此我们通常建议从 A mazon EC2 内存优化的
工作负载低于最低资源(小于 4vCPUs)
尽管某些用例适用于突发性 (T3) 实例,但我们建议您通常避免对服务器工作负载使用突发性实例。SQLSQL服务器的许可基于 vCPUs 分配给实例的数量。如果 SQL Server 一天中的大部分时间都处于闲置状态并且正在获得大量积分,则您需要为未充分利用的SQL许可证付费。此外,SQLServer 的最低许可证要求为每台服务器 4 个内核。这意味着,如果您的SQL服务器工作负载不需要 vCPUs 4 个计算能力,则需要支付未使用的SQL服务器许可。在这些情况下,最好将多个SQL服务器实例整合到一个更大的服务器上。
使用最少资源(小于 64 GBRAM)的工作负载
许多 64 GB 以下的SQL服务器工作负载RAM并不优先考虑高性能或高可用性。对于这些类型的工作负载,如果应用程序受到 Microsoft 的许可限制,则SQL服务器网络版可能非常适合。
重要
SQL根据微软的许可条款,服务器 Web 版的使用案例受到限制。SQL服务器 Web 版本只能用于支持公共和可访问互联网的网页、网站、Web 应用程序和 Web 服务。它不能用于支持 line-of-business应用程序(例如,客户关系管理、企业资源管理和其他类似的应用程序)。
SQL服务器 Web 版可扩展至 32 GB vCPUs RAM 和 64 GB,价格比SQL服务器标准版低 86%。对于低资源工作负载,使用像 r6a 这样的AMD内存优化实例也是将计算和SQL许可成本降至最低的好方法,它的计算价格比英特尔同类实例低10%。
资源平均值(小于 128 GBRAM)的工作负载
SQL服务器标准版用于大多数高达 128 GB 的SQL服务器工作负载RAM。SQL服务器标准版比SQL服务器企业版便宜 65-75%,并且可以扩展到 48 GB vCPUs 和 128 GB。RAM由于 128 GB RAM 限制通常在 48 v CPU 限制之前达到,因此大多数希望避免升级到 Serv SQL er Enterprise 版的客户都将重点放在首位。
SQL服务器有一个叫做缓冲池扩展
缓冲池扩展不能取代普通扩展RAM。但是,如果您需要超过 128 GB 的缓冲池扩展RAM,则可以将缓冲池扩展与 r6id.4xlarge 和 x2iedn.xlarge 等EC2实例一起使用,以延迟企业版许可的升级。
高性能工作负载(超过 128 GBRAM)
SQL需要高性能的服务器工作负载由于依赖大量资源,因此成本优化具有挑战性。但是,了解EC2实例的差异可以防止您做出错误的选择。
下表显示了各种内存优化EC2实例及其性能限制。
r5b | r6idn | r7iz | x2iedn | x2iezn | |
---|---|---|---|---|---|
处理器 | 3.1 GHz 第二代英特尔至强处理器 |
3.5 GHz 第三代英特尔至强处理器 |
3.9 GHz 第四代英特尔至强可扩展处理器 |
3.5 GHz 第三代英特尔至强处理器 |
4.5 GHz 第二代英特尔至强处理器 |
CPU: RAM 比例 | 1:8 | 1:8 | 1:8 | 1:32 | 1:32 |
Max v CPU | 96 | 128 | 128 | 128 | 48 |
马克斯 RAM | 768 GB | 1,024 GB | 1,024 GB | 4,096 GB | 1,536 GB |
实例存储 | – | NVMe SSD (4x 1900 GB) |
– | NVMe SSD (2x 1900 GB) |
– |
io2 区块快车 | 支持 | 支持 | 支持 | 支持 | – |
马克斯 EBS IOPS | 260000 | 350,000 | 160000 | 260000 | 80,000 |
最大EBS吞吐量 | 60 Gbps | 80 Gbps | 40Gbps | 80 Gbps | 19 Gbps |
最大网络带宽 | 25 Gbps | 200 Gbps | 50 Gbps | 100 Gbps | 100 Gbps |
每个实例都有不同的用途。了解您的SQL服务器工作负载可以帮助您选择最适合自己的实例类型。
有关属性的详细信息:
-
r5b — r5b 中的 “b” 属性表示此实例类型侧重于高性能。EBS在第五代内存优化实例中,r5b 是首选。它是第一个使用 io2 Block Express 卷并达到最大存储容量为 260,000 IOPS 的实例类型。对于高EBS性能需求,r5b 实例类型仍然是一种经济实惠的替代方案。
-
r6idn — 与上一代相比,第六代内存优化型实例提供了相当大的改进。r5b的EBS性能增强在r6idn上又向前迈进了一步,最大值提高到35万个。IOPSr6idn 还具有用于 tempdb 的实例存储卷和缓冲池扩展,以进一步提高服务器性能。SQL
-
x2iedn — x2iedn 与 r6idn 类似。它提供类似级别的增强型EBS、增强型联网和NVMeSSD实例存储,但对于高内存工作负载和低CPU数量(较低的SQL服务器许可成本),其 vCPU-to-RAM比例为 1:32。
-
x2iezn — x2iezn 中的 “z” 属性表示此实例类型侧重于高处理器性能。Cascade Lake 处理器的全核涡轮频率高达 4.5。GHz我们建议您在想要保持 v CPU 数量较低的场景中使用此EC2实 vCPU-to-RAM例,并采用 1:32 的比例。反过来,这可以降低SQL服务器许可成本。
-
r7iz — r7iz 中的 “z” 属性表示此实例类型侧重于高处理器性能。Sapphire rapids 处理器的全核涡轮频率高达 3.9 GHz。与 x2iezn 实例一样,r7iz 优先考虑高频处理器性能,但比例为 1:8。 vCPU-to-RAM
其他资源
-
通用型 Amazon EC2 实例
(AWS 文档) -
比较工具
(Vantage) -
许可-SQL 服务器
(AWS 文档)