你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

OpenShift Virtualization 上的虚拟机部署最佳做法

本文档提供有关在 Azure Red Hat OpenShift 上使用 OpenShift 虚拟化部署虚拟机(VM)时优化性能和成本效益的指导。 本指南还解决了应用程序性能方面的任何问题,并为成功部署提供了可行的步骤。

优化方法

注释

Azure 上的 OpenShift Virtualization 目前不支持依赖 GPU 的工作负荷。 相应地规划部署。

优化 VM 部署首先了解应用程序工作负载并相应地调整基础结构选择。 与本机 VM 或 pod 部署相比,在 Azure Boost 计算机上进行 OpenShift 虚拟化部署会为集群的工作节点引入体系结构开销。 规划容量和性能应考虑到此开销。

工作负荷标识

在预配 VM 之前,请对工作负荷进行分类,以确定其性能和资源要求。 常见工作负荷类型包括:

  • 常规用途: Web 服务器、应用程序服务器、内容管理系统。
  • 数据库: 需要一致的 IOPS 和内存的关系数据库和 NoSQL 数据库。
  • 实时分析: 低延迟数据处理、操作仪表板。
  • AI/ML: 需要高 CPU/GPU 和内存的计算密集型工作负荷。
  • 数据流式处理和消息传送: 高吞吐量、低延迟事件驱动的体系结构。
  • 批处理: 定期或按需作业处理大量数据。
  • 高性能计算(HPC): 科学模拟、财务建模。
  • Edge 和 IoT: 聚合和处理分布式传感器中的数据。
  • 媒体处理: 视频编码/解码、图像转换、流式处理。
  • 开发/测试环境: 用于开发和测试的临时环境。

每个工作负荷类型都具有影响 VM 大小调整、存储配置和性能优化策略的独特特征。

正确调整应用程序工作负荷的大小

正确调整大小的关键注意事项

  • 最低核心要求: OpenShift 虚拟化至少需要 8 个 (8) 个核心 Azure VM,用于 OpenShift 工作节点。
  • 体系结构开销: 性能可能因配置环境时做出的体系结构决策而异,包括实例类型、存储和网络特征。
  • 横向扩展: 对于要求苛刻的工作负荷,通过添加更多节点来横向扩展 Azure Red Hat OpenShift 群集有助于克服资源争用和维护吞吐量。
  • 对工作负荷进行基准测试: 避免仅依赖本地大小调整引用;对自己的工作负载进行基准测试,以告知正确的大小调整。
  • 成本因素: 考虑 Azure 计算成本、OpenShift 许可、VM 许可和可伸缩性要求。

正确的大小可确保 VM 预配足够的资源来满足性能目标,而无需过度预配。 此过程在云环境中至关重要,其中资源效率直接影响成本和性能。

调整工作负荷大小的步骤

  1. 定义健康指标

    • CPU 使用率:目标 60–70% 平均使用量。
    • 内存压力:监视交换使用情况、内存饱和度和页面错误。
    • IO 压力:测量磁盘延迟、吞吐量和队列深度。
  2. 设置监视

    • 使用 Prometheus 和 Grafana 进行实时指标收集和可视化。
    • 启用 KubeVirt 的指标以获取关于虚拟机(VM)层面的洞察信息。
    • 通过 Azure Arc 与 Azure Monitor 集成,将基础结构级指标与应用程序性能相关联。
  3. 分析历史数据

    • 查看一段时间内的性能趋势。
    • 确定高峰使用周期和资源饱和事件。
    • 使用历史基线来指导未来的自动缩放决策。
  4. 调整 VM 规范

  5. 测试和验证

    • 使用 Apache JMeter、Locust 或 stress-ng 等工具执行负载测试。
    • 根据定义的运行状况指标和性能目标进行验证。
    • 迭代配置更改并重新测试以确认改进。

微调环境

微调 OpenShift 虚拟化环境对于实现最佳性能至关重要,尤其是对于要求苛刻的工作负荷。 以下最佳做法派生自 Azure Boost VM 系列(Dsv5/Dsv6)上的广泛基准测试和实际体验。

性能优化策略

  • 针对要求苛刻的工作负载,进行横向或纵向扩展: 在您的 Azure Red Hat OpenShift 集群中添加更多节点或扩大节点规模,以支持高并发性或资源密集型的应用程序。
  • 避免严格的资源限制: 仅为 VM 设置来宾内存;除非治理需要,否则请避免严格的资源限制。
  • 优化存储和网络配置: 选择符合工作负荷需求的存储解决方案和性能层。 对于网络密集型工作负荷,请优化 NAPI 和多队列等设置,并监视吞吐量和延迟。
  • 定期监视和基准测试: 使用 Prometheus、Grafana 和 Azure Monitor 跟踪关键指标。 对自己的工作负载进行基准测试,以验证性能并指导进一步优化。
  • 预计体系结构的开销:相应地规划容量和设置预期,特别是针对 I/O 或网络需求较高的工作负荷。

VM 超额资源分配调整

OpenShift Virtualization 操作员允许调整 CPU 和内存过度提交比率,使你可以分配比物理可用更多的虚拟资源。 此更改可以提高密度和资源利用率,但可能会增加争用并影响性能。

过度提交参数调整的最佳实践

  • 对生产工作负荷使用谨慎的超量分配。
  • 请考虑在开发/测试环境中进行更高比例的资源超配。
  • 根据需要监视资源使用情况并调整比率。

有关详细信息,请参阅 配置更高的 VM 工作负荷密度

基于基准的最佳做法

  • 数据库工作负荷: 避免为 VM 设置资源请求和限制。 使用快速存储和高并发时密切监视性能。 扩展群集节点以支持大型数据库部署。
  • 网络工作负载: 优化网络设置以实现最佳吞吐量。 根据需要横向扩展以实现所需的网络吞吐量。

存储解决方案优化

  • OpenShift Data Foundation (ODF): 使用 SSD 支持的存储进行低延迟访问。 根据工作负荷需求配置复制和擦除编码策略。 为了防止应用程序计算资源的竞争,请考虑为 ODF 创建一个独立的工作池,使用较小的 Azure VM 实例大小,比如 Ds16v5 作为一个很好的起点,并运用污点/容忍度机制以确保 ODF 是唯一被安置在此的工作负载。 监视存储性能并根据需要调整复制因素。
  • Azure NetApp 文件(ANF): 根据 IOPS 和吞吐量要求选择性能层。 确保正确的装载选项和网络配置以获得最佳性能。 使用卷快照和备份来支持数据保护和恢复策略。

适用于 Azure Red Hat OpenShift 的 OpenShift 虚拟化