ADC

Configure simultaneous multithreading for NetScaler VPX on public clouds

NetScaler uses different dedicated cores for its management and its data plane functions. One core is typically assigned to management plane functions. The rest of the available cores are assigned to data plane functions.

The following image shows a simplified illustration of a 4 core NetScaler VPX.

Figure 1. NetScaler management and data plane workload on a 4 core system

NetScaler without SMT feature

While the preceding image shows the distribution of NetScaler functions across available cores, it’s not necessarily an accurate depiction of the underlying hardware. Most modern x86 CPUs provide two logical cores per physical core, through features commercially known as Intel Hyperthreading (HT) or AMD simultaneous multithreading (SMT).

The following image shows NetScaler VPX running on a modern CPU with SMT disabled. Each CPU core is split into two or more logical CPUs, commonly referred to as threads. Each thread has its own set of replicated resources, a portion of partitioned resources, and competes for shared resources with its sibling threads.

Figure 2. NetScaler management and data plane workload on a 4 core/8 thread system with SMT disabled

NetScaler with SMT feature disabled

The following image shows NetScaler VPX running on a modern CPU with SMT enabled.

Figure 3. NetScaler management and data plane workload on a 4 core system with SMT enabled

NetScaler with SMT feature enabled

Enabling SMT improves NetScaler performance by:

  • Running data plane functions on all physical cores.
  • Moving the management plane functions to the sibling thread.
  • Introducing a flexible resource limit mechanism to prevent management plane functions from compromising the performance of data plane functions.

SMT support matrix

The VPX platforms, cloud instance types, and NetScaler versions that support SMT are listed in the following table.

VPX platform Instance types NetScaler VPX version
AWS M5, m5n, c5, c5n 14.1-12.x and later
Azure Any instance family with hyperthreading, for example, Ds_v4 14.1-12.x and later
GCP e2-instances 14.1-12.x and later

Note:

By enabling the SMT feature, NetScaler VPX performance is boosted on the supported types.

Limitations

The SMT feature effectively doubles the vCPUs available to a NetScaler appliance. The licensing limits must be considered to allow NetScaler appliance to use them.

For example, consider NetScaler VPX illustrated in Figure 3. If a throughput-based licensing is used, a 10 Gbps or above license is required with the SMT feature to enable 8 vCPUs. Previously, a 1 Gbps license was sufficient for enabling 4 vCPUs. If a vCPU licensing is used, NetScaler VPX must be configured to check out licenses for double the count of vCPUs for proper operation. Contact NetScaler technical support for further guidance on this topic.

Configure SMT

Before enabling the SMT feature, ensure that your platform supports this feature. See the support matrix table in the previous section.

To enable the SMT feature, follow these steps:

  1. Create an empty file named .smt_handling under the “/nsconfig” directory.
  2. Save the current configuration.
  3. Reboot NetScaler VPX instance.

    nscli> shell touch /nsconfig/.smt_handling
      Done
    nscli> reboot
    Are you sure you want to restart NetScaler (Y/N)? [N]:Y
    Done
    <!--NeedCopy-->
    
  4. After rebooting, NetScaler indicates that the feature is both available and enabled.

    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-->
    

To disable the SMT feature, follow these steps:

  1. Remove the .smt_handling file.
  2. Reboot NetScaler VPX instance.

    shell rm -f /nsconfig/.smt_handling
      Done
    
    reboot
    
    Are you sure you want to restart NetScaler (Y/N)? [N]:Y
    Done
    <!--NeedCopy-->
    
  3. After rebooting, NetScaler indicates that the feature is available but disabled.

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

Troubleshooting

Run the sysctl shell command to verify the status of the SMT feature.

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

The command can return any of the following outputs.

  • The SMT feature is missing.

    The sysctl command returns no output.

  • The SMT feature is not supported.

    The SMT feature isn’t supported for any of the following reasons:

    • Your NetScaler VPX is older than 13.1-48.x or 14.1-12.x.
    • Your cloud does not support SMT.
    • Your VM instance type doesn’t support SMT, for example, the vCPU count is more than 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-->
      
  • The SMT feature is supported but not enabled.

       > 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-->
    
Configure simultaneous multithreading for NetScaler VPX on public clouds