你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
重要
Azure API for FHIR 将于 2026 年 9 月 30 日停用。 请按照迁移策略,在该日期之前转换到Azure Health Data Services FHIR® 服务。 由于 Azure API for FHIR 停用,从 2025 年 4 月 1 日开始,不允许使用新的客户部署。 Azure Health Data Services FHIR 服务是 Azure API for FHIR 的演化版本,可让客户管理 FHIR、DICOM 和医疗技术服务,并集成到其他 Azure 服务。
Azure API for FHIR 作为托管服务,让客户能够存储符合 Fast Healthcare 互操作性资源(FHIR®)标准的医疗保健数据,并通过服务 API 安全地交换这些数据。 为了适应不同的事务工作负荷,客户可以使用手动缩放或自动缩放。
Azure API for FHIR 在数据库和计算级别提供缩放功能。
在数据库级别自动缩放
默认情况下,Azure API for FHIR 设置为手动进行数据库缩放。 当事务工作负荷已知且一致时,此选项非常有效。 客户可以通过门户将吞吐量 RU/s 调整为 100,000,并提交请求来增加限制。
自动缩放功能旨在根据工作负荷自动缩放 Azure 资源(包括数据库吞吐量),从而消除数据层中可能存在的瓶颈。
以下部分提供有关如何在数据库级别启用自动缩放的指导。
启用自动缩放
一般情况下,客户在工作负荷变化很大且不可预知时应考虑自动缩放。
若要启用自动缩放功能,客户需要通过 Azure 门户创建一次性支持票证请求。 Microsoft支持团队根据支持优先级启用自动缩放功能。
注释
自动缩放功能在 Azure 门户中不可用。
RU/s 的自动缩放
启用自动缩放后,系统将计算并设置初始 Tmax 值。 可伸缩性由最大吞吐量 RU/s 值 (Tmax) 控制,且在 0.1 *Tmax(或 Tmax 的 10%)和 Tmax RU/s 之间缩放。
Tmax 会随着总数据大小的增长自动增加。 为了确保最大可伸缩性, Tmax 应保留该值 as-is。 但是,客户可以请求将该值更改为介于 10% 和 100% Tmax 之间的某个值。
可以增大最大值 RU/s 或 Tmax 值,直至达到服务支持的最高值。 当服务繁忙时,吞吐量 RU/s 将扩展到 Tmax 值。 当服务处于空闲状态时,吞吐量 RU/s 将缩减为 10% Tmax 值。
还可以减小最大值 RU/s 或 Tmax 值。 减少最大 RU/s 时,可以设置的最小值为:MAX (400, highest max RU/s ever provisioned / 10, current storage in GB * 40),舍入到最接近的 100 RU/s。
-
示例 1:有 1 GB 数据,预配
RU/s的最高值为 10,000。 最小值为 Max (400, 10,000/10, 1x40) = 1000。 使用第二个数字 10,000/10 = 1000。 -
示例 2:你有 20 GB 的数据,预配
RU/s的最高值为 100,000。 最小值为 Max (400, 100,000/10, 20x40) = 10,000。 使用第二个数字 100,000/10 =10,000。 - 示例 3:你有 80 GB 的数据,预配的最高 RU/秒为 300,000。 最小值为 Max (400, 300,000/10, 80x40) = 30,000。 使用第二个数字 300,000/10 = 30,000。
如果它是有效数字且不超过 100,000RU/s,则可以通过门户调整最大值Tmax或RU/s值。 可以创建支持工单以请求大于 100,000 的 Tmax 值。
注释
随着数据存储的增长,系统会自动将最大吞吐量增加到支持该存储级别的下一个最高 RU/秒。
计算层面的自动缩放
以下是为 FHIR 服务计算级别定义的自动缩放策略。
- 缩放触发器
缩放触发器描述何时执行服务缩放。 定期检查触发条件中定义的条件,以判断是否需要对服务进行缩放。 当前支持的触发器包括:平均 CPU、最大工作线程数、平均 LogWrite、平均数据 IO。
- 扩展机制
如果触发检查确定需要扩展,则会应用扩展机制。 此外,在缩放间隔过期之前不会再次评估缩放触发器,在Azure API for FHIR中,缩放间隔设置为一分钟。
为了确保获得最佳结果,我们建议客户逐步提高其请求速率以匹配预期的推送速率,而不是一次性推送所有请求。
FAQ
如何估算所需的吞吐量 RU/秒?
数据大小是用于计算手动缩放和自动缩放所需的总吞吐量 RU/秒的几个因素之一。 可以使用 “监视”下的“指标”菜单选项找到数据大小。 启动一个新图表,然后在“聚合”框中的“指标”下拉框中选择“ Cosmos DB 集合大小 ”和“ 最大值 ”。
你应该能够看到所选时间段内的最大数据收集大小。 如有必要,可以将“时间范围”从“过去 30 分钟”更改为“过去 48 小时”,例如。
使用以下公式计算所需的 RU/秒。
- 手动缩放:存储空间 (GB) * 40
- 自动缩放:以 GB 为单位的存储 * 400
请记住,这只是基于数据大小的估计值,还有其他因素会影响所需的 RU/秒。
我已启用自动缩放,如何切换到手动缩放?
需要支持工单才能将自动缩放更改为手动缩放并指定吞吐量 RU/s。 对于手动缩放,可以设置的最小值为:MAX (400, highest max RU/s ever provisioned / 10, current storage in GB * 40),舍入到最接近的 100 RU/s。 此处使用的数字不同于自动缩放中使用的数字。
更改完成后,新的计费费率将基于手动缩放。
自动缩放有哪些成本影响?
由于自动管理预配的吞吐量单位,自动缩放功能会产生成本。 实际成本取决于每小时使用量,但请记住,预留吞吐量 RU/秒的最低成本为 10% Tmax 。 成本增加不适用于存储和运行时成本。 有关定价的信息,请参阅 Azure API for FHIR 定价。
后续步骤
本文档介绍了 Azure API for FHIR 的自动缩放功能。 有关 Azure API for FHIR 的概述,请参阅
注释
FHIR® 是 HL7 的注册商标,并经 HL7 授权使用。