NetScaler VPX

为公有云上的 NetScaler VPX 配置同步多线程

NetScaler 使用不同的专用内核进行管理和数据平面功能。 一个核心通常分配给管理平面功能。 其余可用内核分配给数据平面函数。

下图显示了 4 核 NetScaler VPX 的简化示意图。

图 1. 内联部署 图 1. 4 核系统上的 NetScaler 管理和数据平面工作负载

没有 SMT 功能的 NetScaler

虽然上图显示了 NetScaler 功能在可用内核上的分布,但它不一定是对底层硬件的精确描述。 大多数现代 x86 CPU 通过商业上称为 Intel Hyperthreading (HT) 或 AMD 同步多线程 (SMT) 的功能为每个物理内核提供两个逻辑内核。

下图显示了 NetScaler VPX 在禁用 SMT 的现代 CPU 上运行。 每个 CPU 内核分成两个或更多逻辑 CPU,通常称为线程。 每个线程都有自己的一组复制资源、一部分分区资源,并与其兄弟线程争夺共享资源。

图 2. 图 2. 禁用 SMT 的 4 核/8 线程系统上的 NetScaler 管理和数据平面工作负载

禁用了 SMT 功能的 NetScaler

下图显示了在启用 SMT 的现代 CPU 上运行的 NetScaler VPX。

图 3. 图 3. 启用 SMT 的 4 核系统上的 NetScaler 管理和数据平面工作负载

启用了 SMT 功能的 NetScaler

启用 SMT 可通过以下方式提高 NetScaler 性能:

  • 在所有物理内核上运行数据平面函数。
  • 将管理平面函数移至兄弟线程。
  • 引入灵活的资源限制机制,以防止管理平面功能损害数据平面功能的性能。

SMT 支持列表

下表列出了支持 SMT 的 VPX 平台、云实例类型和 NetScaler 版本。

| VPX 平台 | 实例类型 | NetScaler VPX 版本 | | —— | ——————— | —————- | | AWS | M5、m5n、c5、c5n | 14.1-12.x 及更高版本 | | Azure | 任何具有超线程的实例系列,例如 Ds_v4 | 14.1-12.x 及更高版本 | | GCP | e2-instances | 14.1-12.x 及更高版本 |

注意:

通过启用 SMT 功能,NetScaler VPX 在支持类型上的性能得到提高。

限制

SMT 功能实际上将 NetScaler 设备可用的 vCPU 增加了一倍。 必须考虑许可限制,以允许 NetScaler 设备使用它们。

例如,以图 3 所示的 NetScaler VPX 为例。 如果使用基于吞吐量的许可,则需要具有 SMT 功能的 10 Gbps 或以上的许可证才能启用 8 个 vCPU。 以前,1 Gbps 许可证足以启用 4 个 vCPU。 如果使用 vCPU 许可,则必须将 NetScaler VPX 配置为签出两倍的 vCPU 数量的许可才能正常运行。 有关此主题的进一步指导,请联系 NetScaler 技术支持。

配置 SMT

在启用 SMT 功能之前,请确保您的平台支持此功能。 请参阅上一节中的支持列表。

要启用 SMT 功能,请执行以下步骤:

  1. 在“/nsconfig”目录下创建一个名为 .smt_handling 的空文件。
  2. 保存当前配置。
  3. 重启 NetScaler VPX 实例。

      nscli> shell touch /nsconfig/.smt_handling
        Done
      nscli> reboot
      Are you sure you want to restart NetScaler (Y/N)?   [N]:Y
      Done
    <!--NeedCopy-->
    
  4. 重新启动后,NetScaler 会指示该功能既可用又已启用。

      smt_handling and smt_handling_active are set to “1”
    
      > shell sysctl -a | grep smt_handling
      netscaler.smt_handling_platform: 1
      netscaler.smt_handling: 1
      netscaler.smt_handling_active: 1
    <!--NeedCopy-->
    

要禁用 SMT 功能,请执行以下步骤:

  1. 删除 .smt_handling 文件。
  2. 重启 NetScaler VPX 实例。

      shell rm -f /nsconfig/.smt_handling
        Done
    
      reboot
    
      Are you sure you want to restart NetScaler (Y/N)?   [N]:Y
      Done
    <!--NeedCopy-->
    
  3. 重新启动后,NetScaler 会指示该功能可用但已禁用。

      > shell sysctl -a | grep smt_handling
      netscaler.smt_handling_platform: 1
      netscaler.smt_handling: 0
      netscaler.smt_handling_active: 0
    <!--NeedCopy-->
    

故障排除

运行 sysctl shell 命令以验证 SMT 功能的状态。

```
  > shell sysctl -a | grep smt_handling
  >
<!--NeedCopy--> ```

该命令可以返回以下任何输出。

  • 缺少 SMT 功能。

    sysctl 命令不返回任何输出。

  • 不支持 SMT 功能。

    由于以下任何原因,不支持 SMT 功能:

    • 您的 NetScaler VPX 版本早于 13.1-48.x 或 14.1-12.x。
    • 您的云不支持 SMT。
    • 您的虚拟机实例类型不支持 SMT,例如,vCPU 数量超过 8。

         > shell sysctl -a | grep smt_handling
         netscaler.smt_handling_platform: 0(indicates not supported)
         netscaler.smt_handling: 0 (indicates not enabled)
         netscaler.smt_handling_active: 0 (indicates not active)
       <!--NeedCopy-->
      
  • 支持但未启用 SMT 功能。

         > shell sysctl -a | grep smt_handling
         netscaler.smt_handling_platform: 1 (available)
         netscaler.smt_handling: 0         (not enabled)
         netscaler.smt_handling_active: 0  (not active)
       <!--NeedCopy-->
    
为公有云上的 NetScaler VPX 配置同步多线程