NetScaler VPX 14.1

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

NetScaler® 使用不同的专用核心来处理其管理和数据平面功能。通常,一个核心分配给管理平面功能。其余可用核心分配给数据平面功能。

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

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

未启用同步多线程功能的 NetScaler(/zh-cn/vpx/media/ns-4core-without-smt.png)

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

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

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

禁用同步多线程功能的 NetScaler(/zh-cn/vpx/media/ns-4core-with-smt-disabled.png)

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

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

已启用同步多线程功能的 NetScaler

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

  • 在所有物理核心上运行数据平面功能。
  • 将管理平面功能移动到同级线程。
  • 我们引入了一种灵活的资源限制机制,旨在防止管理平面功能对数据平面功能的性能产生负面影响。

SMT 支持矩阵

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

VPX 平台 实例类型 思杰 NetScaler VPX 虚拟设备版本
AWS M5, m5n, c5, c5n 14.1-12.x 及更高版本
阿祖尔 任何支持超线程的实例系列,例如 Ds_v4 14.1-12.x 及更高版本
GCP e2 实例 14.1-12.x 及更高版本

注意:

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

局限性

SMT 功能可有效将 NetScaler 设备可用的 vCPU 数量增加一倍。必须考虑许可限制,以允许 NetScaler 设备使用这些 vCPU。

例如,考虑图 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 功能不受支持,原因可能包括以下任何一项:

    • Your NetScaler VPX is older than 13.1-48.x or 14.1-12.x.
    • 您的云不支持 SMT。
    • 您的 VM 实例类型不支持 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 配置同步多线程