根据实际工作负载,可以使用 SE 组级别的配置以调整 NSX Advanced Load Balancer SE 设置。

以下是规划 SE 容量时遵循的准则:

一般准则

以下是一般准则:

  • 建议为 NSX Advanced Load Balancer SE 虚拟机保留 CPU 和内存以获得一致且确定的性能。

  • NSX Advanced Load Balancer SE 组设置中使用精简式模式以在 SE 上放置虚拟服务。这可以确保 NSX Advanced Load Balancer 使用放置虚拟服务所需的最少数量的 SE。对于公有云用例,这有助于节省成本。

调度程序配置

以下是调度程序配置:

  • 默认情况下,在 SE 组级别将 dedicated_dispatcher 设置为 False。该配置最适合计算机容量较小(例如一个或两个内核)的 SE。

  • 对于超过两个内核的 SE 大小,NSX Advanced Load Balancer 建议将 dedicated_dispatcher 设置为 True

GRO 和 TSO 配置

以下是 GRO 和 TSO 配置:

  • GRO 的默认设置是“已停用”,TSO 的默认设置是“已启用”。该配置通常适用于大多数工作负载。

  • 只要有足够的调度程序(大于或等于 4 个),并且利用率较低,就可以启用 GRO。

接收方调整配置

以下是接收方调整 (RSS) 配置:

  • 您可以启用 RSS 以获得更高的性能。由于每个网卡具有更多的调度程序和队列,RSS 可以实现更高的 PPS。

  • 只能将调度程序数量设置为 2 的幂,即,调度程序数量可以是 1、2、4、8 等。

  • max_queues_per_vnic 默认值为 1。如果将该值设置为零,则会根据配置的调度程序计数自动确定队列数。您可以根据要求设置该值。

  • 如果每个网卡的可用队列数小于调度程序数,则将调度程序数下调到队列数。建议调度程序数大于可用的队列数。

数据路径隔离

您可以为延迟和抖动敏感的应用程序启用 SE 数据路径隔离。该功能为数据路径和控制平面 SE 功能创建两个单独的 CPU 集。

公有云上的自动 RSS 建议

所有 NSX Advanced Load Balancer 公有云实例可以在 SE 组中设置相应的 max_queues_per_vnicnum_dispatcher_cores 控制项值以启用自动 RSS。有关配置自动 RSS 的更多详细信息,请参见配置 TSO GRO RSS

对于所有启用了 RSS 并且实例 vCPU 数大于或等于 8 的实例,建议通过 SE 组中的 dedicated_dispatcher_core 控制项设置专用的调度程序。专用调度程序是一个运行时属性,不需要重新引导。

不同工作负载的建议

以下是不同工作负载的建议:

  • 高 PPS 负载(例如较高的每秒连接数以及较小的文件 GET)必须使用更多调度程序以实现更高的 PPS。

  • 具有较高 SSL 事务的工作负载在代理中产生较高的负载,并从大量代理内核中受益。

  • 对于 1 核和 2 核 SE,建议使用默认设置。

以下示例说明了在 vCenter 完全访问云上运行的 6 核 SE 的配置建议。

1 - PPS 高流量配置

假设具有 100 个使用 TCP 的第 4 层虚拟服务,平均每秒建立 1000 个新 TCP 连接,每个连接持续 3 秒,并通过单个 GET 请求下载单个小文件。

考虑到前端和后端的每个 TCP 事务具有 18 到 20 个数据包,该要求意味着新 TCP 连接每秒传输接近 100 万个数据包。考虑到数据包数量,必须为 NSX Advanced Load Balancer SE 配置为以下设置:

  • 专用调度程序:是

  • 调度程序数:2 个

  • 代理内核数:4 个

  • 每个网卡的队列数:2 个

2 - SSL 吞吐量和 TPS 高流量配置

假设多个 SSL 应用程序每秒总共执行 2000 个 ECC 事务,并且 GET 的 SSL 吞吐量为 2 Gbps,

对于上述要求,调度程序内核不会很繁忙,因为每秒的数据包数不是很高,并且 SSL 处理消耗代理内核以执行 ECC 事务和吞吐量。RSS 在该用例中没有提供任何帮助,建议在以下工作负载中使用 RSS:

  • 专用调度程序:是

  • 调度程序数:1 个

  • 代理内核数:5 个

  • 每个网卡的队列数:1 个

3 - HTTP 工作负载,IP 路由流量占 50%

多个 L7 应用程序产生大约 5 到 6 Gbps 流量,单个 SE 每秒处理 150 万个数据包,IP 路由流量占 50%。应用程序运行对延迟和抖动敏感。

为了实现上述要求,NSX Advanced Load Balancer 建议将其中的一个 SE 内核专用于非数据路径任务。可以通过以下配置实现该目的:

  • 专用调度程序:是

  • se_dp 隔离模式:是

  • 非调度程序内核数:1 个

  • 调度程序内核数:2 个

  • 每个网卡的队列数:2 个

  • 代理内核数:3 个