NSX Advanced Load Balancer 发布了 NSX Advanced Load Balancer SE 的最低和建议资源要求。本节提供了有关大小调整的详细信息。您可以咨询 NSX Advanced Load Balancer 销售工程师,以了解针对具体要求量身定制的建议。
可以为 SE 配置 1 个 vCPU 内核和 2 GB RAM,最多配置 64 个 vCPU 内核和 256 GB RAM。
在使用 GeoDB 时,建议服务引擎至少具有 4 GB 内存。
在写入访问模式下,您可以在 SE 组属性中为新创建的 SE 配置 SE 资源。
对于处于读取模式或无 Orchestrator 模式的 SE,SE 资源是在部署 SE 虚拟机时为其手动分配的。
NSX Advanced Load Balancer SE 性能由多个因素决定,包括硬件、SE 缩放以及使用的密码和证书。性能可以分为以下主要基准衡量指标:
每秒连接数、请求数和 SSL 事务数 (CPS/RPS/TPS) - 主要是由可用 CPU 限制的。
批量吞吐量 - 取决于 CPU、PPS 和环境特定的限制。
并发连接数 - 取决于 SE 内存。
本节说明了预期的实际性能,并讨论了有关计算和内存使用情况的 SE 背景信息。
CPU
NSX Advanced Load Balancer 支持基于 x86 的处理器,包括来自 AMD 和 Intel 的处理器。通过利用具有 AES-NI 和类似增强功能的 AMD 和 Intel 处理器,可以通过每一代新的处理器稳定提高 NSX Advanced Load Balancer 性能。
CPU 是影响 SSL 握手 (TPS)、吞吐量、压缩和 WAF 检查的主要因素。
如果 CPU 使用限制或环境限制未达到阈值,则性能随 CPU 线性增加。CPU 是每秒事务数和批量吞吐量的主要限制因素。
通过增加分配给服务引擎的 CPU 内核数,可以近乎线性地提高 SSL 性能,因为 CPU 是每秒事务数和批量吞吐量的主要限制因素。单个 SE 最多可以扩展到 36 个 vCPU 内核。在 SE 中,将为一个或多个 CPU 内核分配调度程序角色。它与网卡交互,并在系统中的其他内核之间分配网络流,从而通过其他 CPU 内核有效地对流量进行负载均衡。每个内核负责终止 TCP、SSL 以及由虚拟服务配置确定的其他处理。图中显示的 vCPU 0 充当调度程序,如果具有可用的容量,它还可以处理一定比例的 SSL 流量。通过使用在 CPU 内核之间进行内部负载均衡的系统,NSX Advanced Load Balancer 可以针对不断增加的容量进行线性扩展。
内存
分配给 SE 的内存主要影响并发连接和 HTTP 缓存。如果将内存加倍,将使 SE 执行这些任务的能力加倍。默认内存为 2 GB,这是在 Hypervisor 中为 VMware 云保留的。有关预期并发连接的详细描述,请参见 SE 内存消耗。一般来说,SSL 连接消耗的内存大约是 HTTP 第 7 层连接的两倍,是具有 TCP 代理的第 4 层连接的 4 倍。
网卡
通过 SE 的吞吐量可能是批量吞吐量的限制因素,有时也是 SSL-TPS 的限制因素。SE 的吞吐量高度依赖于平台。为了在单个 SE 上获得最大性能,建议使用裸机或 Linux 云部署,并使用能够支持 DPDK 的 Intel 10 Gb/s 或更高的网卡。
磁盘
在将日志发送到控制器以编制索引之前,SE 可以在本地存储日志。通过增加磁盘,将增加 SE 上保留的日志。SSD 优先于硬盘,因为它们可以更快地写入日志数据。
建议的最小存储大小为 15 GB:((2 * RAM) + 5 GB) 或 15 GB,以较大者为准。15 GB 是 VMware 云中部署的 SE 的默认设置。
日志的磁盘容量
NSX Advanced Load Balancer 根据以下参数计算可用于日志的磁盘容量:
SE 的总磁盘容量。
SE CPU 内核数。
SE 的主内存 (RAM)。
磁盘上未分配给 SE 上的日志的最大存储空间(可以通过 SE 运行时属性进行配置)。
为日志分配的最小存储空间,与 SE 大小无关。
您可以按以下方式计算为调试日志和客户端日志保留的容量:
调试日志容量 = (SE 总磁盘空间 * 没有为 SE 上的日志分配的最大存储空间)/100
客户端日志容量 = 总磁盘空间 - 调试日志容量
对这些值的调整是根据为日志分配的最小存储空间和 SE RAM 等的配置值完成的。
PPS
PPS 通常受 Hypervisor 限制。对于每个 Hypervisor 和版本,限制是不同的。裸机(无 Hypervisor)上的 PPS 限制取决于使用的网卡类型以及使用接收方调整 (Receive Side Scaling, RSS) 的方式。
RPS(每秒 HTTP 请求数)
RPS 取决于 CPU 或 PPS 限制。它指示 CPU 性能以及 SE 可以达到的 PPS 限制。
每秒 SSL 事务数
除了上述硬件因素以外,TPS 还取决于客户端和 NSX Advanced Load Balancer 之间协商的 SSL 会话设置。以下是根据 SSL TPS 调整大小时考虑的事项:
NSX Advanced Load Balancer 支持 RSA 和椭圆曲线 (Elliptic Curve, EC) 证书。使用的证书类型以及协商期间选择的密码决定了建立会话的 CPU 成本。
与 EC 相比,RSA 2k 密钥的计算成本更高。NSX Advanced Load Balancer 建议您将 EC 与 PFS 结合使用,从而提供最佳性能和安全性。
对于不支持最新行业标准的客户端,仍然可以将 RSA 证书作为备份。由于 NSX Advanced Load Balancer 在同一虚拟服务上同时支持 EC 证书和 RSA 证书,因此,您可以逐步迁移到使用 EC 证书,并将对用户体验的影响降到最小。有关更多信息,请参见 EC 与 RSA 证书优先级。
NSX Advanced Load Balancer 的默认 SSL 配置文件优先使用 EC 而不是 RSA,并优先使用 PFS 而不是非 PFS。
有关不同大小的服务引擎上的 RSA 和 EC 证书性能的详细信息,请参见《VMware NSX Advanced Load Balancer 安装指南》中的 NSX Advanced Load Balancer 性能数据表主题。
与不使用 PFS 的 EC (ECDH) 相比,使用完美前向保密的 EC (ECDHE) 的成本大约高 15%。
SSL 会话重用为实际工作负载提供更好的 SSL 性能。
要实现更高的 TPS 数字,请使用更快的处理器、裸机服务器(而不是虚拟机)和更多的 CPU 内核以及扩展到多个服务引擎。由于 SSL 会话重用,实际性能可能会更高。
批量吞吐量
虚拟服务的最大吞吐量取决于 CPU 和网卡或 Hypervisor。
如果将多个网卡用于客户端和服务器流量,可以降低发生拥塞或网卡饱和的可能性。虚拟化环境的每秒最大数据包数差异很大,无论流量是 SSL 还是未加密的 HTTP,都存在相同的限制。
有关吞吐量数字,请参见《VMware NSX Advanced Load Balancer 安装指南》的安装准备工作主题中的性能数据表一节。SSL 吞吐量数字是使用数据表中提到的标准密码生成的。使用更深奥或成本更高的密码可能会影响吞吐量。同样,使用不太安全的密码(例如 RC4-MD5)将提供更好的性能,但安全专家不建议使用。
一般来说,如果需要 SSL 重新加密,TPS 对 SE CPU 的影响可以忽略不计,因为建立新 SSL 会话的大部分 CPU 成本是在服务器上,而不是在客户端上。对于批量吞吐量,对 SE CPU 的影响是该衡量指标的两倍。
并发连接(也称为打开连接)
在规划 SE 大小时,绝不能忽视并发连接的影响。浮动的并发基准数字通常针对处于直通或非代理模式的第 4 层。
换句话说,它们比可实现的目标高出很多数量级。假设实际部署中的每个 SSL 终止连接最初需要 40kB 内存,但这是一个保守的估计。HTTP 标头缓冲量、缓存量、压缩量和其他功能都会影响最终数字。有关更多信息,请参见 SE 内存消耗,包括进行优化以获得更高并发性的方法。
在服务引擎之间进行扩展的功能
NSX Advanced Load Balancer 还可以将流量扩展到多个 SE。通过进行扩展,可以线性地扩展工作负载。扩展主要在 CPU、内存和 PPS 成为限制因素时非常有用。
NSX Advanced Load Balancer 的本机自动扩展功能(L2 扩展)允许将虚拟服务扩展到 4 个 SE。通过使用 ECMP 扩展(L3 扩展),可以将虚拟服务扩展到多个 SE,并对工作负载进行线性扩展。
下图显示了 L2 扩展。
有关扩展功能的更多信息,请参见自动缩放服务引擎。
服务引擎性能数据表
有关上述限制以及根据应用程序行为和负载要求调整服务引擎大小的更多信息,请参见“性能数据表”。
以下是针对不同环境调整大小时考虑的事项:
vCenter 云和 NSX-T Cloud
建议使用 CPU 预留(可通过 se-group 属性进行配置)。
根据负载要求为 VMware 配置 RSS。
裸机和 CSP(Linux 服务器云)部署
对于裸机和 CSP 的 Linux 服务器云 (LSC) 部署,单个 SE 最多可以扩展到 36 个内核。
不同云上的 PPS 限制取决于使用的 Hypervisor 或网卡以及配置调度程序内核和 RSS 的方式。有关建议的配置和功能支持的更多信息,请参见配置 TSO、GRO 和 RSS。
在某些环境中,可以使用 SR-IOV 和 PCIe 直通以绕过 PPS 限制并提供线路速率。有关 SR-IOV 支持的更多信息,请参见《VMware NSX Advanced Load Balancer 安装指南》中的系统要求主题。
对于不同的虚拟机大小,必须根据不同公有云上的云限制和 SE 性能确定云大小。