搜索

第 2 章 NFV 性能注意事项

download PDF

要使网络功能虚拟化(NFV)解决方案非常有用,其虚拟化功能必须满足或超过物理实施的性能。红帽的虚拟化技术基于高性能基于内核的虚拟机(KVM)管理程序,在 OpenStack 和云部署中很常见。

Red Hat OpenStack Platform director 配置 Compute 节点以强制实施资源分区并微调,以实现客户机虚拟网络功能(VNF)的线性能。NFV 用例中的主要性能因素包括吞吐量、延迟和 jitter。

您可以使用数据平面开发套件(DPDK)加速虚拟机在物理 NIC 和虚拟机之间启用高性能数据包切换。OVS 2.10 嵌入了对 DPDK 17 的支持,并包括对 vhost-user 多队列的支持,从而允许扩展性能。OVS-DPDK 为客户机 VNF 提供行式性能。

单根 I/O 虚拟化(SR-IOV)网络提供增强的性能,包括提高特定网络和虚拟机的吞吐量。

性能调优的其他重要功能包括巨页、NUMA 对齐、主机隔离和 CPU 固定。VNF 类别需要大页面和仿真程序线程隔离,才能提高性能。主机隔离和 CPU 固定提高了 NFV 性能,并防止伪装的数据包丢失。

2.1. CPU 和 NUMA 节点

在以前的版本中,x86 系统上的所有内存都会被系统中所有 CPU 相等访问。这会导致内存访问时间相同,无论系统中的 CPU 正在执行该操作,并被称为 Uniform Memory Access (UMA)。

在非统一内存访问(NUMA)中,系统内存被分成名为 nodes (分配给特定 CPU 或套接字)的区域。对 CPU 本地访问的内存比连接到该系统上的远程 CPU 的内存要快。通常,NUMA 系统上的每个套接字都有一个本地内存节点,其内容可以比节点本地到另一个 CPU 的内存或所有 CPU 共享的总线上的内存快。

同样,物理 NIC 放置在 Compute 节点硬件上的 PCI 插槽中。这些插槽连接到与特定 NUMA 节点关联的特定 CPU 套接字。为获得最佳性能,请将您的数据路径 NIC 连接到 CPU 配置(SR-IOV 或 OVS-DPDK)中的同一 NUMA 节点。

NUMA 丢失的性能影响显著,通常从 10% 的性能命中或更高性能开始。每个 CPU 套接字可以有多个 CPU 内核,这些内核被视为用于虚拟化目的的独立 CPU。

提示

有关 NUMA 的更多信息,请参阅 NUMA 是什么以及如何在 Linux 上使用?

2.1.1. NUMA 节点示例

下图显示了双节点 NUMA 系统的示例,以及 CPU 内核和内存页面可用的方式:

图 2.1. 示例:双节点 NUMA 系统

OpenStack NUMA Topology 39825 0416 ADF
注意

只有在来自 NUMA 节点 0 中的 VM1 中存在一个 NUMA 节点 1 中的 CPU 内核时,才可通过 Interconnect 访问远程内存。在这种情况下,NUMA 节点 1 的内存充当 VM1 第三个 CPU 内核的本地(例如,如果 VM1 在上图中使用 CPU 4 分配),但同时充当同一虚拟机其他 CPU 内核的远程内存。

2.1.2. NUMA 感知实例

您可以将 OpenStack 环境配置为使用 NUMA 架构的系统上的 NUMA 拓扑感知。在虚拟机(VM)中运行客户机操作系统时,涉及两个 NUMA 拓扑:

  • 主机物理硬件的 NUMA 拓扑
  • 向客户端操作系统公开的虚拟硬件的 NUMA 拓扑

您可以通过将虚拟硬件与物理硬件 NUMA 拓扑保持一致来优化客户端操作系统的性能。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.