常见做法是,使用负载生成工具验证 Avi Vantage 或任何被测设备 (Device Under Test, DUT) 的性能特征。负载生成器有很多,运行这些生成器往往更像是一种艺术,而不是一种科学。

对于应当使用哪些负载生成器,NSX Advanced Load Balancer 没有特定的首选项。我们的意图和目标是,让任何已发布的 HTTP 性能数据都可以通过行业标准 ApacheBench (AB) 完全重现,这些数据可免费用于大多数 Linux 发行版。

NSX Advanced Load Balancer 提供了可从我们的门户下载的 Ubuntu 虚拟机。该虚拟机包含一个默认的 Web 服务器和 AB,可用于快速启动客户端和服务器,以测试 NSX Advanced Load Balancer 负载均衡和性能。

使用负载生成器进行测试时,最常见的问题是客户端或服务器容量不足。发生这种情况时,响应速度会变慢,数据包会被丢弃,并且负载生成器将报告被测设备性能不佳。当瓶颈在于客户端、被测设备或服务器时,负载生成器的结果没有区别。如果在添加第二个负载生成器或第二个服务器时性能翻倍,那么可以肯定服务引擎不是瓶颈所在。

本节并不是针对负载生成器或其优化的权威指南。VMware 强烈建议与我们的一位工程师合作,以确保获得最佳结果。

负载生成器与实际客户端

使用负载生成器进行测试是与负载均衡器建立信任关系的一个重要步骤。了解当服务引擎达到最大容量时的行为以及对连接或延迟的影响非常有用。但是,负载生成器不是实际的客户端,两者的行为方式大不相同。例如,通过网络连接的客户端会有一定的延迟,而负载生成器往往会通过与被测设备直接邻接来配置为接近零的延迟。

免费负载生成器通常是生成流量并验证响应时间和成功与否的软件。商用负载生成器(例如 Ixia 或 Spirent)可同时提供客户端和服务器。对于包含服务器的系统,服务器通常直到测试开始才会启动。在客户端开始发送请求后,服务引擎在对服务器进行运行状况检查时,将发现服务器会关闭几秒钟。

服务引擎优化

确保为要测试的服务引擎配置了足够的硬件资源以实现所需的目标。这包括 CPU、内存、网卡等硬件。每个虚拟化环境的最高性能不同,尤其是每秒可以发送到单个虚拟机的数据包数。例如,ESX 5.5 约为 500,000/秒,ESX 约为 950,000/秒。

有关性能一般准则的更多信息,请参阅VMware NSX Advanced Load Balancer 配置指南》中的“调整服务引擎大小”主题。

NSX Advanced Load Balancer 配置建议

应当对 NSX Advanced Load Balancer 进行以下配置更改:

  • 运行状况监控器:从池中禁用主动和被动运行状况监控器。这可确保打开的服务器、发送流量的客户端和等待运行状况监控器成功响应的 NSX Advanced Load Balancer 之间不会出现延迟。

  • 慢缓冲期:将池的“慢缓冲期”时间设置为 0,从而有效禁用缓冲期。这可确保 NSX Advanced Load Balancer 发送连接的速度与接收连接的速度一样快。负载测试中的假设是,客户端和服务器不会成为瓶颈。

  • 日志:如果已启用非重要客户端日志,请将其禁用。不建议尝试每秒记录数十万个请求,因为此任务的性能会下降。仍会执行重要日志(错误)记录,这是虚拟服务的默认状态。

在虚拟环境(例如 ESX)中部署 SE 时:

  • 预留 CPU

  • 预留内存