你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本文档提供有关在 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 预配足够的资源来满足性能目标,而无需过度预配。 此过程在云环境中至关重要,其中资源效率直接影响成本和性能。
调整工作负荷大小的步骤
定义健康指标
- CPU 使用率:目标 60–70% 平均使用量。
- 内存压力:监视交换使用情况、内存饱和度和页面错误。
- IO 压力:测量磁盘延迟、吞吐量和队列深度。
设置监视
- 使用 Prometheus 和 Grafana 进行实时指标收集和可视化。
- 启用 KubeVirt 的指标以获取关于虚拟机(VM)层面的洞察信息。
- 通过 Azure Arc 与 Azure Monitor 集成,将基础结构级指标与应用程序性能相关联。
分析历史数据
- 查看一段时间内的性能趋势。
- 确定高峰使用周期和资源饱和事件。
- 使用历史基线来指导未来的自动缩放决策。
调整 VM 规范
- 根据观察到的指标从 Dsv5 或 Dsv6 系列中选择适当的 VM 大小。
- 请考虑 CPU、内存、磁盘 IOPS 和网络吞吐量需求。
- 通过将资源与实际使用模式保持一致来避免过度预配。
- 查看有关优化资源配置的 Red Hat 指南 - 宣布为 OpenShift 虚拟化推出优化资源配置功能 | Red Hat 开发人员。
测试和验证
- 使用 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 和吞吐量要求选择性能层。 确保正确的装载选项和网络配置以获得最佳性能。 使用卷快照和备份来支持数据保护和恢复策略。